Meteor中是否有全局渲染函数?

3
我想知道Meteor中是否有类似Template.myTemplate.Rendered的全局版本。我希望能够附加所有全局GUI特定的Javascript(滚动到顶部动画、自定义复选框等),而不是手动附加到每个模板上。我尝试从布局中调用它,但似乎没有起作用。我使用的是iron router。我做错了什么?祝好!
3个回答

4

将它们附加到body元素

Template.body.rendered = function (){
//do stuff
}

或者从Meteor 1.0.4开始

Template.body.onRendered(function(){
//do stuff
})

谢谢你的回答,但对我没有任何帮助...?body.rendered根本没有被调用,body.onRendered抛出了一个“undefined is not a function”错误,尽管我已经更新到最新版本...有什么提示吗? - user871784
Template.body.onRendered 不是 body.onRendered,不可能不起作用。请参考 http://docs.meteor.com/#/full/template_body 。我希望你已经将这些辅助函数放在了 client 文件夹下。 - Marius Darila
抱歉,对我来说也是一样的 - 它不起作用。client文件夹中的Template.body.onRendered没有被调用。 - Rico Leuthold

1
如果您有一个在许多页面或整个应用程序中共享的布局,您也可以将处理程序附加到其中。嵌入另一个模板的模板是可以的,每个模板都会得到一个“已渲染”的事件。

1
似乎 Iron Router 和 body 存在问题。
Template.body.onRendered(function(){
//do stuff
})

这会起作用,但您需要在某个地方指定body标签并使用“自定义路由渲染”。

<body>{{>Router}}</body>

我知道Iron-Router和body事件之间存在问题。这个包修复了它:https://github.com/gwendall/meteor-body-events - robertdavid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接