假设我有一个名为“home”的模板:
<template name="home">
<h1>Hello, world!</h1>
</template>
我给它一个呈现的事件:
Template.home.rendered = function () {
alert('Hello!');
};
和“家”路线:
Router.map(function() {
this.route('home', {
path: '/'
});
});
现在,当我第一次加载页面时,“你好!”警报正确。但是,无论我在控制台中输入多少Router.go('home')
,rendered
回调中的警报都不再触发......
我将如何编写每次有Router.go()时触发的内容,但是在模板完全呈现后(具体来说,可能会有不同的集合列表),因为我想应用jquery每次都有一组新的收集元素?
答案 0 :(得分:0)
如果你只需要对元素集合应用jquery,那么使用Meteor.defer()可能会更好。 snippet explaining the usage
无论如何,我发现没有办法在不改变路线的情况下触发.rendered()函数。 当路由具有参数并且您使用Router.go()重定向到新参数(示例/页面/ 2)时,这会打击。 我用一个可怕的黑客解决了这个问题:
<span style="display:none;">{{fakeHelper}}</span>
然后在fakeHelper helper函数中插入代码。 可怕,但在那种情况下它对我有用。