为了避免重复代码,我发现拥有可以从 foo.rendered 函数(例如)中调用的辅助函数很有用。为什么这在 Meteor 的 0.9.3 中可行,但在 1.0 中抛出错误?
Template.foo.helpers({
'fooFn' : function(){
return "something"
}
});
Template.foo.rendered = function(){
var something = Template.foo.fooFn();
}
我应该更改 foo.rendered 中的语法(我说错了吗?)或者可能完全使用不同的方法(在 helpers({}) 和 rendered() 之外设置函数并调用它们?或者设置这个注册为辅助函数?
最佳答案
从 Meteor 1.0.3.1 开始,似乎可以找到并调用辅助函数,尽管很明显不应该这样使用。
还是可以的:
Template.foo.__helpers[" fooFn"]()
请注意函数名称的前导空格。
处理此问题的另一种方法是将函数附加到全局命名空间,然后从代码中的其他地方调用它,如 user3557327
所述。
此外,您还可以使用:
Template.registerHelper('myHelper', function (){return 'Look At Me!'})
注册一个全局助手,并显式调用它:
UI._globalHelpers['myHelper']()
关于javascript - 在 Meteor.js 中从 template.rendered 中调用辅助函数,在 1.0 中出错,在 0.9.3 中正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735927/