在深层嵌套视图中获取对根容器视图的引用的简便方法

jra*_*ary 2 ember.js

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

       }
   }
}
Run Code Online (Sandbox Code Playgroud)

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

parentView.parentView.parentView.property
Run Code Online (Sandbox Code Playgroud)

不是很优雅.

Roy*_*els 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"
       })
   })
});
Run Code Online (Sandbox Code Playgroud)