再涂在淘汰赛绑定(Reapply bindings in knockout)

2019-06-27 23:40发布

我基本上要重新申请不同的对象在同一页上的绑定,但奇怪的行为。 之后,我重新绑定,物品清单丢失。

请在这里看到: http://jsfiddle.net/baio/9UcUs/5/

该怎么办?

Answer 1:

简短的回答是,它不支持。 长的答复是,有周围的一些方法。 一种方法是调用cleanNodeapplyBindings ,但这并不清晰的事件处理程序。 另一种方法是包裹在一个可观察的视图模型,然后更新可观察到重新绑定; 这个效果要好得多,但仍然有一个小问题(见下文)。

下面是使用可观察到的视图模型方法的例子: http://jsfiddle.net/mbest/9UcUs/9/

我已经用观察到的视图模型发现的唯一的问题是,事件处理程序没有完全与新的视图模型进行更新。 他们将呼吁在新的视图模型正确的功能,但是thisdata值将是原来的视图模型。

编辑:

淘汰赛3.0(目前预定于发行这个月),完全支持可观察的视图模型。 还有可能是与自定义绑定的问题,但希望这一切都将很快被记录在案。



Answer 2:

可以绑定同一个视图模型,以不同的元素,你需要指定要应用的结合的元素。

ko.applyBindings(vm, $('#yourul'));

ko.applyBindings(vm, $('#div'));


Answer 3:

这样做:

ko.applyBindings(viewModel, $('#somejQObj')[0]);

作品在@ fengd的答复的意见陈述。 目前有由foreach语句,即有每一个都有一个动态添加的子表也由foreach语句填充展开的行填充表。 后的各分表用动态插入做上述集的子表的绑定和填充数据。



文章来源: Reapply bindings in knockout
标签: knockout.js