我刚刚遇到了一个很奇怪的问题,我有多个applyBindings()但它们都是针对不同的元素。现在,这一切都用于正常工作,因为一旦所有资源都被加载(yepnope完全回调),所有事情都会发生,但是现在它基于引发的事件(从我们的内部事件系统)发生,似乎有一个奇怪的错误(说视图模型没有可观察到的,但是因为它看起来不正确)。淘汰赛部分绑定问题
问题是,最后一个绑定似乎因为某种原因覆盖了所有其他绑定,所以如果我有4个元素具有唯一的id和4个视图模型,每个绑定到它们的coresponding元素,所以我期望绑定发生像这样:
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渗入其他元素或覆盖以前的绑定?