是否有一种简单的方法可以从Ember.ContainerView中深层嵌套的子视图访问根视图。我想绑定root和subsubchild的属性:
Ember.ContainerView.create {
childViews: ['child1']
value: null
child1: Ember.ContainerView.create {
childViews: ['subchild1']
subchild1 : Ember.View.create {
valueBinding: "parentView.parentView.value"
}
}
}
我想将root中的值与subchild1中的值绑定,但我发现调用了
parentView.parentView.parentView.property
不是很优雅。
答案 0 :(得分:7)
您可以使用nearestWithProperty
方法。有关示例,请参阅以下内容。
Ember.ContainerView.create({
childViews: ['child1'],
value: null,
isRootView: true,
child1: Ember.ContainerView.extend({
childViews: ['subchild1'],
subchild1 : Ember.View.extend({
rootView: Ember.computed(function() {
return this.nearestWithProperty('isRootView');
}).property().cacheable(),
valueBinding: "rootView.value"
})
})
});
答案 1 :(得分:0)
API文档中没有提到rootView
属性。如果在value
中定义child1
怎么办?你仍然会有同样的问题,必须引用parentView.value
。 value
实际上应该在控制器中定义,你的subchild1 valueBinding应该绑定到控制器中的属性。