当从对象创建视图时,似乎当我更改对象中的属性时,视图的属性也会发生变化。如果我在视图中更改属性,则更改不会反映在对象中。我认为双向绑定是默认行为。我错过了什么吗?
WidgetClass = Ember.Object.extend
address: 'widget address'
create_view: ->
# console.log this.name
view = Ember.View.create
someobj: this
addressBinding: 'someobj.address'
template: Ember.Handlebars.compile '{{address}}'
return view
TextWidget = WidgetClass.create()
view = TextWidget.create_view()
view.append()
view.set 'address', 'new new address'
console.log (view.get 'address')
console.log (TextWidget.get 'address') # I am expecting this output to be 'new new address'
答案 0 :(得分:2)
当应用绑定然后立即测试它们时,您需要强制Ember运行循环赶上。尝试在Ember.run.sync()
之前添加view.set 'address', 'new new address'
。不再需要setTimeout()
来电。
答案 1 :(得分:1)
在这种情况下使用setPath很重要。双向绑定完美无缺。
以下代码有效。
view.setPath 'someobj.address', 'new new address'
console.log (TextWidget.get 'address') # this outputs 'new new address' correctly