【问题标题】:Meteor Template rendered stopped working渲染的流星模板停止工作
【发布时间】: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


【解决方案1】:

发现了我的问题,我为这个帖子道歉。

在另一个 js 文件的其他地方的另一个 javascript 文件中定义了重复的 Template.layout.rendered

所以我希望这可以帮助遇到同样问题的其他人。如果您的 Template.whatever.rendered 停止工作,请在您最近添加的 javascript 文件中查找重复的 Template.whatever.rendered。 Meteor 和 Iron Router 在存在重复的情况下不会产生警告或错误。也许他们应该?提示提示

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多