在knockout中,我想覆盖默认的foreach
绑定:
var foreachInit = ko.bindingHandlers.foreach.init;
ko.bindingHandlers.foreach.init = function () {
foreachInit.apply(this, arguments);
};
但是,即使是这个简单的代码段也会触发错误:
不能对同一元素多次应用绑定
参见控制台上的小提琴:https://jsfiddle.net/hejdav/wxf51s5L/10/
你知道,为什么会发生这种事吗?
3条答案
按热度按时间c3frrgcw1#
我相信你在这里想太多了。创建一个viewModel构造函数,初始化并传递你想要的数据,然后将其存储在一个observableArray中。
第一个
slhcrj9b2#
因为在您的HTML中,您有另一个文本绑定,请删除该跨度,您的问题就解决了。或者,您应该告诉Knockout您将自己控制后代绑定。http://knockoutjs.com/documentation/custom-bindings-controlling-descendant-bindings.html
dxxyhpgq3#
为避免错误,应从
init
返回{ controlsDescendantBindings: true }
,因此:https://jsfiddle.net/hejdav/6sar9ftv/3/