1

I have a checkbox being controller by a Knockout observable, but in a custom binding, the element is not checked.

<input type="checkbox" data-bind="checked: isChecked, highlightIfChecked: 'test'"/>

The element is checked and unchecked on the page, but in the highlightIfChecked custom binding, it is not. I'm using $(elem).is(":checked").

JSFiddle: http://jsfiddle.net/JgLck/

How can I get the element to be checked in the custom binding?

4

1 回答 1

3

元素检查值的设置发生在checked绑定的update函数中。目前,所有函数都在元素上的绑定init函数之前运行。update

因此,如果您将自定义绑定切换为使用update而不是init,那么您将看到正确的值。

此外,isChecked如果您希望绑定再次触发,则需要将您的值更改为可观察值。请注意,在 KO 3.0 中,绑定将被独立处理,因此您的自定义绑定需要访问isChecked才能创建依赖项。

http://jsfiddle.net/rniemeyer/eXEmM/

于 2013-06-13T15:58:47.980 回答