ember.js添加子视图

时间:2012-08-14 18:00:07

标签: views ember.js

我有以下代码段:

App.TripLegView = Em.View.extend({
     transportMeanType: null,
     transportMeanTypeChanged: function  () {
          this.carView = App.CarView.create();
          var childView = this.createChildView(this.carView );
          this.get('childViews').pushObject(childView);
     }
}).observes('transportMeanType'),

App.CarView = Em.View.extend();

但是,当我调试上面的代码时,子视图似乎没有添加到childViews数组中。

任何人都可以解释如何正确添加子视图。

1 个答案:

答案 0 :(得分:0)

首先,似乎你在滥用observes(),它应该在函数上定义。 如果您想操纵子视图,我认为您应该使用Ember.ContainerView

您的代码将是这样的:

App.CarView = Em.View.extend();

App.TripLegView = Em.ContainerView.extend({
  transportMeanType: null,

  transportMeanTypeChanged: function  () {
    this.carView = App.CarView.create();
    var childView = this.createChildView(this.carView );
    this.get('childViews').pushObject(childView);
  }.observes('transportMeanType')
});

如果它不起作用,请发一个jsfiddle给出一个例子。