2012年10月11日 星期四

[Knockout] 解決 radio checked binding,radio button 老是要按兩次才能選取的的問題

這次問題的過程比較難以描述。

初始問題

問題 sample 如下

http://jsfiddle.net/CharlesLin/X2a5P/

當點選 radio button 時,一開始會點不順利,直到每點過一次以才會正常.

image

checked 只能 binding 到  string

查詢http://knockoutjs.com/documentation/checked-binding.html 中有提到下面這一段敘述

•For radio buttons, KO will set the element to be checked if and only if the parameter value equals the radio button node’s value attribute. So, your parameter value should be a string

意思是:當使用 checked 繫結時,必須是 string 才有用.

所以,就有了第二個版本:把 Id 改成 string

http://jsfiddle.net/CharlesLin/X2a5P/3/

image

這樣子就正常了.

我的解法

然而,將 Id 改型別是不合常理的。通常這些資料都是從伺服器端來的,並非我們能控制。最好在 client 能夠正常運作。
最後,只能修改 binding

http://jsfiddle.net/CharlesLin/X2a5P/4/

image

將 value 改成字串。改正 one-way binding 不影響此處值的顯示。

如此就符合我的需求了

沒有留言:

Share with Facebook