【发布时间】:2012-07-09 09:30:52
【问题描述】:
我刚刚遇到了一个非常奇怪的问题,我有多个 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 中调试时,视图模型和元素是正确的并且不是未定义的,这可以解释为什么最后一个调用会覆盖所有其他的。
我会尝试做一个 jsfiddle,但由于项目的复杂性以及外部模板和依赖项,这是不可能的。
所有事情都指向我做错了什么,而不是 KnockoutJS,但我不明白为什么它过去可以正常工作,唯一改变的是应用绑定的顺序和时间。
以前有人见过 applyBindings 渗入其他元素或覆盖以前的绑定吗?
【问题讨论】:
标签: javascript knockout.js knockout-2.0