[英]Custom Bindings in KnockoutJS
我刚开始使用KnockoutJS时遇到了自定义绑定的问题。 我为自定义绑定分配了可观察对象,并通过输入字段更改了可观察对象。 另一个文本字段已经对更改做出反应,但是以某种方式未触发更新。
ko.bindingHandlers.someBinding = {
update: function(element, valueAccessor) {
console.log("B");
}
}
function myModel() {
this.lastname = ko.observable("name");
}
ko.applyBindings(new myModel());
...
<p data-bind="text: lastname"></p>
<input data-bind="value: lastname" />
<p data-bind="someBinding: lastname" ></p>
只是因为您从不访问绑定中的可观察对象,所以KO认为您不需要该可观察对象。
只需访问它,例如:
var currentValue = ko.unwrap(valueAccessor());
通常,您会在绑定处理程序中完成此操作,因为通常您需要该值,但初始测试却没有,因此这就是您未获得预期结果的原因。
现场示例:
ko.bindingHandlers.someBinding = { update: function(element, valueAccessor) { console.log("B"); ko.unwrap(valueAccessor()); } } function myModel() { this.lastname = ko.observable("name"); } ko.applyBindings(new myModel());
<p data-bind="text: lastname"></p> <input data-bind="value: lastname" /> <p data-bind="someBinding: lastname" ></p> <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.