【发布时间】:2015-05-23 00:22:03
【问题描述】:
Meteor 的奇怪问题。每当加载使用名为 layout 的 layoutTemplate 的页面时,我一直在使用 Template.layout.render 运行 javascript 函数。它正在工作,每当呈现布局模板时都会触发代码,但它最近停止工作。
代码示例,在layout.js:
Template.layout.created = function() {
alert("created");
}
Template.layout.rendered = function() {
alert("foo");
}
Template.layout.created 工作正常(我看到它的弹出窗口)。但是Template.layout.rendered 根本不运行。没有弹出窗口或我在该块中放入的任何其他代码。
其他页面使用他们的Template.name.rendered 代码。例如在index.js:
Template.index.rendered = function() {
alert("index rendered");
}
这行得通。我看到一个index rendered 弹出窗口。
有人见过这样的吗?
我正在使用 Iron Router,虽然我怀疑 Iron Router 的问题,这里是配置:
Router.configure({
layoutTemplate: 'layout',
});
Router.route('/', {
name: 'index',
});
【问题讨论】:
-
我看不出您显示的代码有什么问题。在模板第一次渲染到 DOM 之后,应该至少调用一次渲染的回调。如果它从未达到那么远,则模板可能有问题。
-
感谢您的评论。我刚刚发现了问题。代码中其他地方的另一个 .js 文件中存在重复的 Template.layout.rendered。它是偶然放在那里的,当我把它取下来时,一切又恢复正常了。
标签: meteor iron-router