【发布时间】:2013-09-23 21:09:03
【问题描述】:
我有一些使用 knockout.js、自定义绑定和调用 applyBindings() 到局部视图的代码。 jsfiddle with ko 2.2.1
var handle = slider.slider().find(".ui-slider-handle").first();
$(handle).attr("data-bind", "tooltip: viewModel.value");
ko.applyBindings(viewModel.value, $(handle)[0]);
现在,在 ko 版本 2.3 中,我收到错误消息“您不能将绑定多次应用于同一元素。” jsfiddle with ko 2.3
我可能一直有这个问题,但以前版本的淘汰赛不会抛出异常。 我在部分 applyBindings 之前添加了对 cleanNode() 的调用,但 that doesn't help。
var handle = slider.slider().find(".ui-slider-handle").first();
$(handle).attr("data-bind", "tooltip: viewModel.value");
ko.cleanNode($(handle)[0]);
ko.applyBindings(viewModel.value, $(handle)[0]);
有趣的是,绑定适用于动态工具提示,但不适用于静态字段,因此我认为应用部分视图绑定后会引发错误。 我试图遵循全局 ko.applyBindings() 之后发生的调用链,但它嵌套得很深,并且迷路了。 我所知道的是,自定义绑定在 ko.applyBindings() 之后被初始化。我不知道以后是否有办法添加自定义处理程序,也许这会有所帮助。 我希望这已经足够清楚了。
【问题讨论】:
标签: knockout.js