1

ContainerView に 6 つを超える動的な childView があるアプリケーションがあります。Ember がそれぞれの childViews のコントローラーに接続していないことがわかりました。この childViews に関連する私のデータは、現在 childViews 自体で取得しています。containerView のコントローラーを使用してみましたが、childView のデータは互いに独立しており、データを取得するには複数のリクエストが必要です。これを行うことができるより良い方法はありますか?これが今やっているサンプルコードです

 var App=Ember.Application.create();
App.TestView=Ember.ContainerView.create({

  init: function(){
    var childViews=this.get('childViews');
    childViews.pushObject(Ember.View.create({
      data:this.getData(), 
      getData : function() {
         //Ajax Call

      }

    }));

  }

});

App.TestController=Ember.Controller.create({
  content : []
});
4

1 に答える 1

1

おそらく、コンテナー ビューのコントローラーでデータを取得し、計算されたプロパティを介して子ビューと共有することができます。何かのようなもの:

App.TestController = Ember.Controller.extend({

  dataForChild1: function () {
    return $.getJSon().data; // make here the ajax call you need
  }.property()

  ...
});

App.TestView = Ember.ContainerView.extend({

  childViews: ['view1', 'view2'],

  view1: Ember.View.extend({
     dataBinding: 'controller.dataForChild1'
  })
});
于 2012-12-11T13:12:13.540 に答える