Emberjs虫子?当值更改时调用Observer,但不更新其他绑定到相同值

时间:2012-03-14 01:54:49

标签: data-binding ember.js

我有一个值为“App.selectedValue”的观察者。我还有另一个Ember对象,它具有到App.selectedValue的绑定(App.someObj.appValueBinding)。但是,当我的观察者被调用时,App.someObj的绑定不会更新。

http://jsfiddle.net/Ur2Qj/8/

中说明了这一点

在jsfiddle中,您可以在Chrome调试器或FireBug中看到,App.selectedValue和App.someObj.appValue具有不同的值,即使后者绑定到前者。

似乎应该在调用观察者时更新绑定。这是Emberjs的预期行为还是一个错误?有解决办法吗?

感谢您的关注!

1 个答案:

答案 0 :(得分:2)

看看这个:http://jsfiddle.net/ud3323/GUHCD/(在JavaScript中;我不喜欢CoffeeScript ...抱歉)。

你在这里遇到的两个主要问题是没有正确使用get()set(),而在观察者中你需要在当前runloop结束后设置App.someController.content(意味着在所有其他绑定发生之后)。您可以使用Ember.run.next()执行此操作。您也可以在那里使用Ember.run.sync()

哦,你需要使用jQuery 1.7.1。版本1.5.2与Ember不兼容。