ContainerView childViews绑定

时间:2014-04-03 14:22:34

标签: ember.js dashboard

是否可以将childViews属性绑定到控制器中的属性?因此,

App.DashboardView = Ember.ContainerView.extend({
  tagName: 'section',
  childViewsBinding: 'controller.viewChildren',
  ...
});

在控制器中,视图对象是动态创建的(qryView),然后附加到控制器的数组中:

this.get('viewChildren').pushObject(qryView.create()); 

我一直在尝试这个,但是在填充数组后,我看不到containerView的渲染有任何变化。

布赖恩

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,因为绑定似乎不起作用。我在containerView中创建了一个观察者:

App.DashboardView = Ember.ContainerView.extend({
  tagName: 'section',
  updChildViews: (function() {
    var children, ths;
    try {
      ths = this;
      children = this.get('controller.viewChildren');
      children.forEach(function(chld) {
        if (!ths.get('childViews').contains(chld)) {
          ths.pushObject(chld);
        }
      });
    } catch (e) {
      console.error("DashboardView.updChildViews error:", e);
    }
  }).observes('controller.viewChildren.@each')