2016-10-28 2 views
0

기본 객체가있는 JSViews 객체 배열을 바인딩합니다. 라디오 버튼으로 기본 설정을 보여주고 있습니다. 다른 객체를 디폴트로 만들고 싶다면, Ajax 호출을 만들어서 호출이 미리 정의 된 상태로 성공했을 때만 기본 객체로 변경해야합니다. 나는 Ajax 요청에 대한 약속을 사용하고 있습니다. 함수, 라디오 버튼 상태가 변경되지 않습니다. 나는이 같은 시도했지만 작동하지 않습니다. 나는 약속을 반환 오전 이후 나는 그것을 반환 할 때 true 또는 false로 해결되지 않습니다 가정합니다. 어떻게 성취 될 수 있습니까? ~setAsDefault를 들어 JS아약스 응답을 기반으로 라디오 버튼 값을 변경하십시오.

setAsDefault:function(){ 
    return service.setAsDefaultObj('123').then(function(response){ 
     return response; //response is either true or false; 
    },function(response){ 
     return response; 
    }); 
} 
+0

대답은 만약을

어느 단방향 데이터 링크를 사용 아래에서 당신을 위해 일했는데, 받아 들일 수 있습니까? 고마워요 ... (시간과 노력이 당신에게 응답하는 데 시간과 노력을 기울 였음을 인정하지 않습니다!) – BorisMoore

+0

@BorisMoore : 정말 미안 해요 .. 몇 주 동안 관련없는 프로젝트에서 일했던 것처럼 솔루션에 응답 할 수 없었습니다. 솔루션을 시도하고 상태를 업데이트 할 것입니다. 귀하의시기 적절한 응답은 대단히 감사하겠습니다. 후속 조치를하지 않는 것에 대해 사과드립니다. 앞으로도 그렇게 할 것입니다. 감사. – user1776573

답변

1

<input type="radio" name="default" data-link="checked{:isDefaultObj} {on ~setAsDefault}"> 

- 기본 클릭 동작가 입력 건너 확인 있도록 false를 반환 할 수 있습니다.

그런 다음 라디오 버튼 그룹에 데이터 연결 속성을 연결하는 것이 좋습니다. 따라서 약속이 성공/실패를 반환 한 후에 새 설정/원래 설정을 관찰 가능하게 설정할 수 있습니다.

다음은 적절한 값의 지연 설정을 사용하여 selectedCar으로 데이터 링크하는 예입니다. 사용하는 각각의 경우에 당신의 checked{...} 방법 다음 코드 접근

<label><input name="cars2" type="radio" value="none" data-link="checked{:selectedCar==='none'} {on getAjax 'none'}"/> 
    None</label><br/> 
<label><input name="cars2" type="radio" value="vlv" data-link="checked{:selectedCar==='vlv'} {on getAjax 'vlv'}"/> 
    Volvo</label><br/> 
<label><input name="cars2" type="radio" value="frd" data-link="checked{:selectedCar==='frd'} {on getAjax 'frd'}"/> 
    Ford</label><br/><br/> 

<label><input name="cars" type="radio" value="none" data-link="{:selectedCar} {on getAjax 'none'}"/> 
    None</label><br/> 
<label><input name="cars" type="radio" value="vlv" data-link="{:selectedCar} {on getAjax 'vlv'}"/> 
    Volvo</label><br/> 
<label><input name="cars" type="radio" value="frd" data-link="{:selectedCar} {on getAjax 'frd'}"/> 
    Ford</label><br/><br/> 

또는 사용 :

var data = { 
    selectedCar: "frd", 
    getAjax: function(val) { 
    var sel = data.selectedCar; 
    $.ajax({ 
     type: 'GET', 
     url: "../TEST" + val + ".html", 
     timeout: 5000, 
     success: function(){ 
     $.observable(data).setProperty("selectedCar", val); 
     }, 
     error: function(xhr, textStatus, errorThrown){ 
     $.observable(data).setProperty("selectedCar", val); 
     $.observable(data).setProperty("selectedCar", sel); 
     } 
    }); 
    return false; 
    } 
}; 
+0

@ user1776573 - 위의 작업을 수행 했습니까? – BorisMoore

+0

완벽하게 작동합니다. 감사.. – user1776573

관련 문제