javascript - 在 Meteor.js 中从 template.rendered 中调用辅助函数,在 1.0 中出错,在 0.9.3 中正常

标签 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();
}

我应该更改 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/

相关文章:

javascript - 全屏背景图像仅在调整浏览器窗口大小时全屏显示

javascript - 循环遍历子项

javascript - Gulp-确保文件开头有注释

javascript - 在 Meteor 应用程序中使用 appcache

javascript - 带有 coffeescript 的 meteor 包(以及继承和严格模式)

javascript - 计算从绿色到红色的颜色值

javascript - overflow-x : hidden doesn't work, 而是在滚动时在右侧添加填充

tdd - Meteor 测试驱动开发

javascript - ValidatedMethod 中的 Meteor this.unblock

javascript - 从事件中获取父模板上下文的规范方法?