0

次のコードスニペットがあります。

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配列に追加されていないようです。

子ビューを正しく追加する方法を誰かが説明できますか?

4

1 に答える 1

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を投稿してください。

于 2012-08-14T19:10:11.427 に答える