当我在ko.applyBindings()之后将任何新元素注入(inject)DOM时;被召集,那么 knockout 将不会识别这些新元素。
我能理解为什么会这样-他们只是没有被 knockout 索引。

因此,起初我认为可以通过再次调用ko.applyBindings()来解决此问题,但是在添加了新元素之后,我才意识到,对于您进行的每个ko.applyBindings()调用,相应事件都会多次触发。因此,在应用了五次之后,click:绑定(bind)将被触发五次,因此这不是理想的解决方案;)

是否有类似ko.updateBindings()之类的东西来告诉 knockout ,嗯...更新元素绑定(bind)?

你好,
克里斯

最佳答案

每次调用ko.applyBindings时,都会检查整个DOM的绑定(bind)。因此,如果您多次执行此操作,则将为每个元素获得多个绑定(bind)。如果只想绑定(bind)一个新的DOM元素,则可以将此元素作为参数传递给applyBindings函数:

ko.applyBindings(viewModelA, document.getElementById("newElement"));

请参阅以下相关问题:

Can you call ko.applyBindings to bind a partial view?

关于javascript - Knockout.js:更新绑定(bind)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8281875/

10-12 14:31