0

Webページの特定の場所に1つのビューが表示される単純なember.jsアプリがあります。このjsfiddleを見てください:http://jsfiddle.net/jkkK3/9/

App = Ember.Application.create({

  ready: function(){
      this._super();
      this.ApplicationView.create().appendTo(".content");
  },

  ApplicationController: Ember.Controller.extend({
  }),

  ApplicationView: Ember.View.extend({
    templateName: 'application'
  }),

  Router: Ember.Router.extend({
    root: Ember.Route.extend({  
    })
  })
});

私の質問は、「ここにあるコンテンツ」要素が2回表示されるのはなぜですか。ルーターを削除すると機能しますが、Emberアプリにルーターを追加しようとしているため、これはまったくできません。赤いボックス内にアプリケーションビューを1回だけ表示するのを手伝ってもらえますか?

4

1 に答える 1

3

ルーターを使用する場合、デフォルトで applicationController/view が使用されます。ready メソッドでは、明示的に追加します。したがって、「アプリケーション」テンプレートは 2 回追加されます。ready メソッドで追加を削除すると、一度だけ追加されます。

デフォルトでは body に追加されますが、オーバーライドする場合は Ember.Application の rootElement プロパティを使用します

Ember.Application.create( {
    rootElement : '.content',
    ....
})
于 2012-07-25T16:00:24.337 に答える