2014-12-02 3 views
1

최근 ko 2.2.1에서 3.0.0으로 코드를 업그레이드하고 일부 기능이 작동하지 않습니다. 그 중 하나가 2.2.1에서 작동하지만 3.0.0 버전에서 작동하지 않는 라디오 버튼과 관련되어 있습니다. .라디오 버튼이 녹아웃과 작동하지 않습니다. 3

내가 지금 녹아웃 엄격한 검사를해야합니다 있다고하는 http://knockoutjs.com/upgrade-notes/v3.0.0.html

를 통과했다. 이전에 우리는 2.2.1에서 잘 작동

<input type="radio" name="defaultlang" data-bind="attr:{value: 1},checked: 1"> 

과 같은 몇 가지 일이 지금 녹아웃 최신이

<input type="radio" name="defaultlang" data-bind="checkedValue: 1,checked: 1"> 

로 변경 제안되고있는 변경을 할 수있는 다른 방법이 무엇입니까? 둘 다 ko 버전으로 잘 작동할까요? 여기에 jsFiddle이 있습니다. http://jsfiddle.net/6mr5recs/6/

+4

이것은 변경 사항이므로 새 버전을 사용하기 위해 이전 코드를 변경해야합니다. 즉, 두 버전 모두에서 작동하는 체크 된 바인딩 핸들러를 작성하지 않고는이 문제를 해결할 수 없습니다. 하지만 3.0으로 업그레이드하는 경우 2.2.1에서 작동해야하는 이유는 무엇입니까? – nemesv

답변

0

는 v.3.0.0에서 잘 바인딩 작업을 확인 라디오 그룹의 옵션을 저장합니다. 그렇게하지 않으려면 값 속성의보기에 계속 저장할 수 있으며 checkedValue: $element.value으로 설정하십시오.

금액 (금액이 아님) 중에서 과일을 선택할 수있는 라디오 그룹에 대해 quantity이 관측 될 수 없다는 말에는 의미가없고, 무엇보다도 defaultLanguage이라는 이름이 있습니다.

은 어떤 경우에도,이 옵션 그룹을 작성하는 올바른 방법이 될 것이다 : http://jsfiddle.net/kevinvanlierde/6mr5recs/7/

코드 : selectedLang 선택된 옵션의 값을 보유하고

<div> 
    <input type="radio" name="defaultlang" value="fr" data-bind="checkedValue: $element.value, checked: selectedLang "/> 
    <span>FR</span> 
</div> 
<div> 
    <input type="radio" name="defaultLang" value="en" data-bind="checkedValue: $element.value, checked: selectedLang" /> 
    <span>EN</span> 
</div> 
<div> 
    <input type="radio" name="defaultlang" value="de" data-bind="checkedValue: $element.value, checked: selectedLang"/> 
    <span>DE</span> 
</div> 

.

0

는 일반적으로 당신이 배열을 사용합니다 : 여기

<input type="radio" name="defaultlang" data-bind="attr:{value: 1},checked: '1'"> 

업데이트 바이올린입니다 : 그 값이 문자열 인 경우
http://jsfiddle.net/6mr5recs/

관련 문제