2015-09-01 4 views
1

У меня есть активный компонент, который включает в свой шаблон html элемент Bootstrap .collapse. Вызов show() и hide() на этом вызовет запуск Bootstrap и скрыть переходы.Ractive component: как получить ссылку на DOM?

# the component template: 
    <div id='my_component> 
    <div class='collapse'> 
     some stuff to show or hide in here 
    </div> 
    </div> 


# the component code: 

Ractive.extend({ 
    template : "#component_template", 
    show : function(){ 
    // call show() on the .collapse element within the rendered template 
    // but how to get a reference on that element? 
    }, 
    hide : function(){ 
    // call hide() on the .collapse element within the rendered template 
    // but how to get a reference on that element? 
    } 
}) 

Как я могу получить ссылку в javascript для элемента collapse? this.el, похоже, относится к корню (родительский компонент), а не к фрагменту представления компонента.

заранее спасибо

ответ

3

ractive.find(querySelector) является то, что вы ищете:

Ractive.extend({ 
    template : "#component_template", 
    show : function(){ 
    this.find('.collapse').show(); 
    }, 
    hide : function(){ 
    this.find('.collapse').hide(); 
    } 
}) 
+0

+1, хотя, конечно, это узел DOM, а не селектор JQuery, так что если вы хотите использовать '. hide() 'вам нужно будет обернуть его так:' $ (this.find ('. collapse')). hide() '. Или 'this.find ('. Collapse'). Style.display = 'none''. –

+0

да, это работает. Спасибо @martypdx и Rich Harris. Я думал, что пробовал это без успеха, но сейчас он работает! –

Смежные вопросы