2012-04-17 50 views
7

我有一個Ember.js應用程序。在主模板中,我有一個幫助按鈕,單擊時應顯示一個CSS工具提示。我有工具提示是一個單獨的Handlebars模板。如何動態插入一個新的模板到帶有Ember的DOM中?

我想要做的是處理click事件,將彈出窗口插入DOM並顯示它。我無法弄清楚如何使用Ember將新模板插入到DOM中。

這裏是我的模板在顯示幫助按鈕:

<div id="status_help" class="icon_help" {{action "helpClicked"}}></div> 

這是我的主要觀點:

var checkbox = Ember.Checkbox.extend({ 
    templateName: 'checkbox', 
    helpClicked: function(e) { 
     // Not sure what to do here 
    } 
})); 

var tooltip = Ember.View.extend({ 
    templateName: 'tooltip' 
}); 

所以我不知道在事件處理程序來呈現提示怎麼辦模板並將其注入到要顯示的DOM中。

回答

12

您可以使用Ember.ViewappendappendTo方法創建新視圖並將其附加到DOM。

App.MyView = Ember.View.extend({ 
    templateName: 'a_template' 
}) 

var view = App.MyView.create(); 

// Append the view to the document body 
view.append(); 
// ...or append to any element described using 
// a jQuery-compatible selector. 
view.appendTo('#my-div'); 
+0

還有一個'replaceIn'方法,請參閱https://github.com/emberjs/ember.js/blob/255bd707a73c905fa6e14ac76f134642e9802667/packages/ember-views/lib/views/view.js#L704- 724。 – pangratz 2012-04-18 08:33:54

+1

我正在做倒退。我在父視圖上調用append來嘗試追加孩子。我會給這個鏡頭,謝謝。 – 2012-04-18 16:07:55

+1

如何在Ember 2.x中完成此操作,現在Views已被棄用? – tojofo 2015-12-10 06:02:35

相關問題