2012-07-25 108 views
0

有一個簡單的ember.js應用程序,其中一個視圖顯示在網頁的特定位置。看看這個的jsfiddle:http://jsfiddle.net/jkkK3/9/Ember模板顯示兩次

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({ 
    }) 
    }) 
}); 

我的問題是:爲什麼「這裏的一些內容」的元素顯示兩次?它在我移除路由器時起作用,但這正是我無法做到的,因爲我嘗試將路由器添加到我的Ember應用程序中。您能否幫我在紅色框內顯示一次應用程序視圖?

回答

3

使用路由器時,默認情況下使用applicationController/view。在你準備好的方法中,你明確地附加它。所以'申請'模板被附加兩次。刪除附加它準備好的方法,它只會被附加一次。

默認情況下它是附加在身上,但如果你想覆蓋Ember.Application

Ember.Application.create({ 
    rootElement : '.content', 
    .... 
}) 
+0

的使用rootElement的財產是的,你是對的。那麼我怎麼才能顯示它一次,將它追加到「.content」div? – 2012-07-25 16:08:47

+0

你不需要在ready()方法中追加它 – zaplitny 2012-07-25 16:10:55

+0

然後它被放置在body元素中。我需要把它放在特定的元素中,在我的例子中是「.content」。 – 2012-07-25 16:11:50