2012-05-16 15 views
2

是否有一種簡單的方法可以從Ember.ContainerView中深度嵌套的子視圖訪問根視圖。我想根本的屬性和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 

不十分優雅。

回答

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" 
     }) 
    }) 
}); 
0

API文檔中沒有提及rootView屬性。如果valuechild1中定義,該怎麼辦?您仍然有不得不參考parentView.value的相同問題。 value實際上應該在控制器中定義,並且subchild1 valueBinding應綁定到控制器中的屬性。

+0

我使用控制器,但在我的應用程序的域中,我只能訪問根視圖。 – jrabary