如何檢查插座是否已連接到我的應用程序模板?在renderTemplate()我想檢查插座是否需要連接或不連接(出於性能原因)。最終的代碼看起來應該與此類似:Ember Pre4:如何檢查插座是否已連接?
renderTemplate: function(controller, model) {
var isMyOutletConnected = //how to do that?
if(!isMyOutletConnected){
this.render('someTemplate', { // the template to render
into: 'application', // the template to render into
outlet: 'someOutlet', // the name of the outlet in that template
controller: "someController" // the controller to use for the template
});
}
}
我試圖用容器來查找通過應用程序視圖:container.lookup("view:application)
但這實例化一個新的觀點,而不是返回現有之一。
Ember已經爲你做到這一點。如果您轉換到相同的視圖,它不會重新呈現視圖。它也不會創建另一個控制器,因爲控制器的行爲與單例相似。如果是性能問題,那麼您應該保持良好狀態,因爲在添加支票時,您實際上正在增加應用程序在轉換時不得不做的工作。 – Wildhoney 2013-02-11 17:42:50
實際上並非如此。我發佈的解決方案使我大大提高了性能。如果你看一下render()的代碼,你會發現,這個代碼總是涉及到完全拆除現有插座,儘管沒有任何改變。這可以通過其他方式得到緩解,但檢查現有網點是一種可能的方法。 – mavilein 2013-02-12 10:59:05