2012-04-17 11 views
7

Mam aplikację Ember.js. W głównym szablonie mam przycisk pomocy, który po kliknięciu powinien wyświetlać etykietkę CSS. Mam etykietkę narzędziową to osobny szablon kierownicy.Jak mogę dynamicznie wstawiać nowy szablon do DOM z Ember?

Co próbuję zrobić, to obsłużyć zdarzenie click, aby wstawić wyskakujące okienko do DOM i wyświetlić je. Nie mogę wymyślić, jak wstawić nowe szablony do DOM za pomocą Ember.

Oto mój szablon gdzie jest wyświetlany przycisk help:

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

Oto mój podstawowy widok:

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

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

Więc nie jestem pewien, co zrobić w tej obsługi zdarzeń do renderowania tooltip szablon i wstaw go do wyświetlanego DOM.

Odpowiedz

12

Możesz utworzyć nowy widok i dołączyć go do DOM przy użyciu metod Ember.View 'append lub appendTo.

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

Istnieje również metoda replaceIn' 'patrz https://github.com/emberjs/ember.js/blob/255bd707a73c905fa6e14ac76f134642e9802667/packages/ember-views/lib/views/view.js#L704- 724. – pangratz

+1

Robiłem to od tyłu. Wołałem append na widoku nadrzędnym, aby spróbować dołączyć dziecko. Dam ci to, dzięki. –

+1

Jak to zrobić w Ember 2.x teraz, gdy widoki są przestarzałe? – tojofo

Powiązane problemy