所以我正在使用Knockout Custom Bindings,我有以下代码:
<input type="radio" class="radio" data-bind="custombind: custombind"/>
<input type="text" class="text" data-bind="custombind: custombind"/>
- JS -
var viewModel = {
custombind: ko.observable(true)
};
ko.applyBindings(viewModel);
ko.bindingHandlers.custombind = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext)
{
alert($(element).attr('class'));
}
}
也许我误解了自定义绑定是如何工作的,但我希望这会返回带有“ custombind ”数据绑定的任何元素的类名。目前似乎没有任何事情发生。任何关于我出错的建议都将不胜感激。感谢
- 小提琴 -
- 的参考 -
答案 0 :(得分:1)
尽管文档中没有明确说明,但是在调用ko.applyBindings
之前,应该定义所有自定义绑定。
否则KO在解析data-bind
属性时将不知道如何处理自定义绑定。
所以下面的代码工作正常:
ko.bindingHandlers.custombind = {
init: function(element, valueAccessor, allBindingsAccessor,
viewModel, bindingContext)
{
alert($(element).attr('class'));
}
}
var viewModel = {
custombind: ko.observable(true)
};
ko.applyBindings(viewModel);
演示JSFiddle。