KnockoutJS'检查'绑定未在customBinding中应用?

时间:2013-06-13 15:33:07

标签: javascript jquery knockout.js

我有一个由Knockout observable控制的控制器,但在自定义绑定中,不检查该元素。

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

在页面上检查并取消选中该元素,但在highlightIfChecked自定义绑定中,它不是。我正在使用$(elem).is(":checked")

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

如何在自定义绑定中检查元素?

1 个答案:

答案 0 :(得分:3)

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

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

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

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