在Meteor.js中的template.rendered中调用辅助函数,1.0中的错误,0.9.3中的罚款

typ*_*hic 2 javascript meteor

为了避免重复代码,我发现有一个辅助函数可以从foo.rendered函数中调用(例如).为什么这可能在Meteor的0.9.3中,但在1.0中引发错误?

Template.foo.helpers({
  'fooFn' : function(){
     return "something"  
  }
});

Template.foo.rendered = function(){
  var something = Template.foo.fooFn();
}
Run Code Online (Sandbox Code Playgroud)

我应该更改foo.rendered中的语法(我称之为错误?)或者可能完全使用不同的方法(在帮助器({})之外设置函数并渲染()并调用它们?或者将其设置为注册助手功能?

MrM*_*gli 5

从Meteor 1.0.3.1开始,它似乎有可能找到并调用辅助函数,尽管很明显它应该像这样使用.

还是可以做到:

Template.foo.__helpers[" fooFn"]()
Run Code Online (Sandbox Code Playgroud)

请注意功能名称的前导空格.

处理此问题的另一种方法是将函数附加到全局命名空间,然后从代码中的其他位置调用该函数,user3557327如上所述.

另外你可以使用:

Template.registerHelper('myHelper', function (){return 'Look At Me!'})
Run Code Online (Sandbox Code Playgroud)

注册一个全局帮助器,并使用以下命令显式调用它:

UI._globalHelpers['myHelper']()
Run Code Online (Sandbox Code Playgroud)