2

Ember.ContainerViewの深くネストされた子ビューからルートビューにアクセスする簡単な方法はありますか?ルートとサブサブチャイルドのプロパティをバインドしたい:

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

rootViewAPIドキュメントに記載されているプロパティはありません。valueで定義されている場合はどうなりchild1ますか?を参照しなければならないという同じ問題がまだありますparentView.valuevalue実際にはコントローラーで定義する必要があり、subchild1valueBindingはコントローラーのプロパティにバインドする必要があります。

于 2012-05-16T21:26:51.010 に答える