我有一个值为“App.selectedValue”的观察者。我还有另一个Ember对象,它具有到App.selectedValue的绑定(App.someObj.appValueBinding)。但是,当我的观察者被调用时,App.someObj的绑定不会更新。
中说明了这一点在jsfiddle中,您可以在Chrome调试器或FireBug中看到,App.selectedValue和App.someObj.appValue具有不同的值,即使后者绑定到前者。
似乎应该在调用观察者时更新绑定。这是Emberjs的预期行为还是一个错误?有解决办法吗?
感谢您的关注!
答案 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不兼容。