我正在使用mathias bynen的占位符代码,如果我像这样做一个简单的自定义绑定,我想和淘汰一起使用它:
ko.bindingHandlers.placeholder = {
init: function (element) {
$(element).placeholder();
}
};
Run Code Online (Sandbox Code Playgroud)
和HTML
<input placeholder = "Line 1" data-bind="placeholder: {}, value: addressLine1">
Run Code Online (Sandbox Code Playgroud)
它有效,但我想将它们"合并"到一个自定义绑定中,以便像使用它一样
<input placeholder = "First Name" data-bind="placeholderValue: firstName">
Run Code Online (Sandbox Code Playgroud)
所以我尝试了这段代码:
ko.bindingHandlers.placeholderValue = {
init: function (element, valueAccessor) {
$(element).placeholder();
ko.bindingHandlers.value.init(element, valueAccessor);
},
update: function (element, valueAccessor) {
ko.bindingHandlers.value.update(element, valueAccessor);
}
};
Run Code Online (Sandbox Code Playgroud)
但它引起了我的兴趣
Uncaught TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)
我还没有真正掌握ko
nem*_*esv 12
当你创建一个委托,你总是应该传入一个最佳实践的自定义绑定所有参数的init和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);
}
};
Run Code Online (Sandbox Code Playgroud)
你已经拿到了异常,因为init在的value招标使用allBindingsAccessor参数,而是因为你没有通过,在它引发异常.
| 归档时间: |
|
| 查看次数: |
2984 次 |
| 最近记录: |