当您创建委托自定义绑定作为最佳实践时,您应该始终通过所有的论点 http://knockoutjs.com/documentation/custom-bindings.html of the init
and update
到内部绑定,因为您永远无法知道内部绑定使用哪些参数:
ko.bindingHandlers.placeholderValue = {
init: function (element, valueAccessor, allBindingsAccessor,
viewModel, bindingContext) {
$(element).placeholder();
ko.bindingHandlers.value.init(element, valueAccessor,
allBindingsAccessor, viewModel, bindingContext);
},
update: function (element, valueAccessor, allBindingsAccessor,
viewModel, bindingContext) {
ko.bindingHandlers.value.update(element, valueAccessor,
allBindingsAccessor, viewModel, bindingContext);
}
};
你有例外,因为init
of the value
出价使用allBindingsAccessor
参数,但因为您没有传递该参数,所以会引发异常。