当我在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/