我刚刚为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')
答案 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
中解决的