Meteor和CoffeeScript:无法调用undefined的方法'helpers'

时间:2014-01-25 15:34:02

标签: javascript coffeescript meteor

我刚刚为Meteor设置了CoffeeScript(我也在使用Jade),似乎我的助手(渲染和事件功能)也不再起作用了。

Template.signIn.helpers
    showForgotPassword: () ->
        return Session.get('showForgotPassword')

代码似乎已正确生成,但包含在匿名函数中。

我在网络控制台中收到以下错误:

Uncaught TypeError: Cannot call method 'helpers' of undefined (account.coffee:12)

我想知道代码是在页面完全加载之前运行还是由于其他原因而运行。我也尝试了这个,但没有改变(虽然它似乎适用于这个tutorial):

root = global ? window

root.Template.signIn.helpers
    showForgotPassword: () ->
        return Session.get('showForgotPassword')

3 个答案:

答案 0 :(得分:1)

当我使用Meteor.startup包装代码时问题得到解决(请参阅David Weldon post)。

if I put .jade and .coffee into same level folder meteor will load .coffee before .jade, then it causes no such template。为防止这种情况,您可以使用_。

为jade文件添加前缀

答案 1 :(得分:0)

感谢伟大的指针@Julien。

我几个小时后就遇到了这个问题,从那以后就一直在打破我的脑袋。

我所做的不是_方法,而是将我的玉文件命名为.html.jade,将我的coffeescript文件命名为.js.coffee

这样就可以在咖啡文件之前加载玉文件,一切正常。

_方法的优点是相关的玉器和咖啡文件在一起。

希望这有帮助。

答案 2 :(得分:0)

我认为这是在meteor-jade v0.2.2

中解决的