我刚遇到一个非常离奇的问题,我有多个applyBindings(),但它们都针对不同的元素。现在这一切都工作得很好,因为一旦所有资源都被加载(一个yepnope完全回调)就会发生,但现在它发生的事件基于一个事件被引发(来自我们的内部事件系统)它似乎有一个奇怪的错误(说视图模型没有可观察性,但是它因为它没有找到正确的一个)。
问题在于最后一个绑定似乎由于某种原因覆盖了所有其他绑定,所以如果我有4个具有唯一ID的元素和4个视图模型,每个绑定到它们的相应元素,那么我希望绑定发生像这样:
element_a -> view_model_a
element_b -> view_model_b
element_c -> view_model_c
element_d -> view_model_d
但是由于某些原因,当绑定view_model_d时,绑定似乎会发生变化,因此它们都会变为:
element_a -> view_model_d
element_b -> view_model_d
element_c -> view_model_d
element_d -> view_model_d
正如我所说,这曾经工作得很好,但是由于我们转向应用绑定的异步方式,它似乎有点破碎,所有绑定元素都在html中并且是自包含的(即它们都不是在DOM中动态注入和不重叠。另外,当在firebug中调试时,viewmodels和元素是正确的而不是未定义的,这可以解释为什么最后一个调用将覆盖所有其他元素。
我会尝试做一个jsfiddle但是由于项目的复杂性以及外部模板和依赖项,它是不可能的。
所有事情都指向我做错事,而不是KnockoutJS,但我无法理解为什么它曾经工作得很好,唯一改变的是应用绑定的顺序和时间。
有人见过applyBindings流入其他元素或覆盖之前的绑定吗?
答案 0 :(得分:0)