使用Meteor JS,我想在每次加载模板时启动一个基本的jQuery函数(它会调整一些元素的大小)。 我试图在Meteor.startup()中调用此函数,但这不起作用。 我也尝试在Router.onBeforeAction()上启动我的函数而没有更多的结果(即使用ironRouter)。
有没有办法做类似的事情:
Template.someTemplate.created = function(){
myUpdateFunction();
};
但是我想在我的应用中的每个模板上自动加载它,而不是在特定模板上加载它。
有没有办法简单地实现这个目标?
感谢。
答案 0 :(得分:2)
这将在创建模板后记录每个模板的名称:
Template.prototype.created = function() {
console.log(this.view.name);
}
但是你的jquery将需要渲染模板,所以这可能会更好:
Template.prototype.rendered = function() {
console.log(this.view.name);
}
答案 1 :(得分:1)
我设法通过包装Blaze._fireCallbacks
来实现它:
Blaze._fireCallbacks = (function(_fireCallbacks) {
return function(view, which) {
_fireCallbacks(view, which)
if(which === 'rendered') {
//Add your logic here
}
}
})(Blaze._fireCallbacks)
可能不是最简单的解决方案。查看演示on this pad。