2015-07-13 2 views
1

У меня есть страница, в которой перечисляется коллекция, которая может быть отфильтрована. Поскольку на этих элементах есть некоторые причудливые эффекты (наведение курсора), они должны применяться после загрузки страницы.Meteor: Как обрабатывать элементы, которые исчезают и появляются снова

Это прекрасно работает, но когда я выбираю критерий, который скрывает элемент, а затем снова выводит его, удаляя этот фильтр, эти эффекты больше не применяются к этим элементам.

Я попытался создать функцию template.rendered, но это работает только при загрузке первой страницы.

Я также думал, что добавление 'hover #mydiv: function() {...}' в раздел template.events может помочь, но это все еще не работает.

Я даже пытался прослушать изменения, сделанные в раскрывающемся списке ('change #myselect': function() {...}), где могут применяться фильтры, но это тоже не работает.

Я также пытался связать его с зависимостью, которая отправляется при выборе критериев, которая также потерпела неудачу.

Любые предложения, что еще я должен попробовать?

Спасибо, Alex

Edit 1:

Это, как я отношусь к фильтры:

в Template.search.events:

'change #search-skills-select': function() { 
    Session.set('searchFilter', $('#search-skills-select').val()); 
} 

Это потом идет:

/* This is of course properly handled for nulls, undefineds, etc. */ 
var searchFilterString = Session.get('searchFilter'); 

Profiles.find({profileAttributes: { 
        $all: searchFilterString 
       } 
      }); 
+0

могли бы вы показать код, который вы используете, чтобы «фильтровать» элементы? – Guillaume

+0

@Guillaume Да, я вставил его выше. –

ответ

1

Вы можете сделать это на шаблоне ребенка (тот, который появляется и исчезает):

<template name="mytemplate"> 
    <div id="my-magic-div"> 
    .. stuff goes here .. 
    {{add_my_special_behavior}} 
    </div> 
</template> 

, а затем добавить код:

Template.mytemplate.add_my_special_behavior = function() { 
    Meteor.defer(function() { 
    // in here, `this` means the template context 
    }); 
}; 

(вдохновленный на https://stackoverflow.com/a/10119993/5109168)

+1

Пусть ваше имя будет восхваляться Небесами! Спасибо, это сделал трюк! –

+1

"... haaaaaaalelujah!" – franciscod

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