2015-01-05 5 views
0

Я добавляю шаблон в виде дерева() с:Удаление шаблона с Blaze.remove() не работает

var $monitor = $("ul#u-my-monitors"); 
var liData = {...}; 
Blaze.renderWithData(Template.uTreeLi, liData, $monitor[0], $monitor.find("li:last")[0]); 

, а затем позже я удалить его с:

Blaze.remove(Blaze.getView($("#u-monitors").find("li[data-target='" + $element.attr("id") + "']")[0])); 
//$("#u-monitors li[data-target='" + $element.attr("id") + "']").remove(); 

Blaze.remove не работает, но версия jQuery.

Я что-то упустил?

+0

Есть ли 'Blaze.getView ($ (" # u-monitors "). Find (" li [data-target = '"+ $ element.attr (" id ") +"'] ") [0]) 'определенно верните рассматриваемое мнение? – richsilv

+0

Да, это так, это очень странно! Я также проверил с помощью 'console.log (Blaze.getView ($ (" # u-monitors "). Find (" li [data-target = '"+ $ element.attr (" id ") +"'] ") [0])) 'и я вижу вид –

+0

Какую версию Meteor вы используете? Если я правильно помню, более старые версии только очищают реактивность с помощью «Blaze.remove» и фактически не удаляют узел DOM. – mark

ответ

1

Недавно я столкнулся с этой проблемой. Вместо

var view = Blaze.getView($("#some-id"); 
Blaze.remove(view); 

Я сделал это:

var view = Blaze.getView($("#some-id"))[0]; 
Blaze.remove(view); 

Если вы

console.log ($ ("# некоторые-идентификатор"));

, он возвращает массив. Надеюсь это поможет.