2012-04-17 7 views
7

私はEmber.jsアプリを持っています。メインテンプレートにはヘルプボタンがあり、クリックするとCSSツールチップが表示されます。私は、ツールチップは別のハンドルバーテンプレートです。Emberを使用して新しいテンプレートをDOMに動的に挿入するにはどうすればよいですか?

私がしようとしているのは、ポップアップをDOMに挿入して表示するためにclickイベントを処理することです。 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.ViewappendまたはappendToの方法を使用して、新しいビューを作成してDOMに追加できます。 `replaceIn`方法もあり

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

、https://github.com/emberjs/ember.js/blob/255bd707a73c905fa6e14ac76f134642e9802667/packages/ember-views/lib/views/view.js#L704-を参照してください724。 – pangratz

+1

私はそれを後方に行っていました。子を追加しようとするために、親ビューにappendを呼び出していました。私はこれをショット、おかげで与えます。 –

+1

Viewsは廃止されたので、Ember 2.xではどのようにしてこれを行うことができますか? – tojofo

関連する問題