2

有没有一种简单的方法可以从 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"

       }
   }
}

我想将根中的值与 subchild1 中的值绑定,但我发现调用

parentView.parentView.parentView.property

不是很优雅。

4

2 回答 2

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"
       })
   })
});
于 2012-05-16T22:39:32.413 回答
0

API 文档中没有rootView提到任何属性。如果value在 中定义child1怎么办?您仍然会遇到同样的问题,即必须引用parentView.value. value实际上应该在控制器中定义,并且您的 subchild1 valueBinding 应该绑定到控制器中的属性。

于 2012-05-16T21:26:51.010 回答