Ember.js 在深度嵌套视图中获取对根容器视图的引用的简单方法
是否有一种简单的方法可以从Ember.ContainerView中的深度嵌套子视图访问根视图。我想绑定根的一个属性和一个子项:Ember.js 在深度嵌套视图中获取对根容器视图的引用的简单方法,ember.js,Ember.js,是否有一种简单的方法可以从Ember.ContainerView中的深度嵌套子视图访问根视图。我想绑定根的一个属性和一个子项: Ember.ContainerView.create { childViews: ['child1'] value: null child1: Ember.ContainerView.create { childViews: ['subchild1'] subchild1 : Ember.View.create {
Ember.ContainerView.create {
childViews: ['child1']
value: null
child1: Ember.ContainerView.create {
childViews: ['subchild1']
subchild1 : Ember.View.create {
valueBinding: "parentView.parentView.value"
}
}
}
我想用subchild1中的值绑定根中的值,但我发现调用
parentView.parentView.parentView.property
不是很优雅。API文档中没有提到
rootView
属性。如果value
是在child1
中定义的,该怎么办?您仍然会遇到同样的问题,即必须引用parentView.value
<代码>值实际上应该在控制器中定义,并且子child1值绑定应该绑定到控制器中的属性。您可以使用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"
})
})
});
我确实使用控制器,但在我的应用程序域中,我只能访问根视图。