流星:如何处理消失并重新出现的元素

时间:2015-07-13 11:39:35

标签: meteor

我有一个页面,列出了一个可以过滤的集合。 由于这些项目有一些奇特的效果(悬停调暗),因此必须在页面加载后应用它们。

这样可以正常工作,但是当我选择隐藏项目的条件,然后通过删除该过滤器重新显示它时,这些效果将不再应用于这些项目。

我尝试创建template.rendered函数,但这只适用于第一页加载。

我还认为在'hover #mydiv: function () {...}'部分添加template.events可能会有所帮助,但这仍然无效。

我甚至试图听取可以应用过滤器的下拉列表('change #myselect': function () {...})中所做的更改,但这些更改无效。

我还尝试将其绑定到依赖项,该依赖项在选择条件时提交,但也已失败。

有什么建议我应该尝试一下吗?

谢谢, 亚历

修改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
                 }
             });

1 个答案:

答案 0 :(得分: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