1

我有一个 ContainerView 有超过 6 个动态子视图的应用程序。我发现 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 回答