【发布时间】:2014-09-17 01:04:14
【问题描述】:
假设我有一个名为“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每次都要一组新的集合元素?
【问题讨论】:
-
您是否在拨打
Router.go('home')而已经在home路由上? -
这是非常正确的先生。
-
这就是它没有被重新渲染的原因,尝试创建另一个路由,然后在它们之间切换,你应该会看到它的工作。
-
遗憾的是,这是我找到的唯一方法,我找不到“刷新”方法...我是否应该对仅重定向回我的虚拟路由执行 Router.go()主页模板?这听起来像是一个可怕的黑客攻击。
-
至于你的第二个问题,看看 Iron-Router 中的 after hooks:github.com/EventedMind/iron-router/blob/devel/…
标签: collections meteor rendering iron-router