我的Meteor项目中有一个具有全局功能的文件:
的客户机/ helpers.js
console.log("INIT client helpers")
formatCurrency = function(number, currencyCode) { /* [...] */ }
formatPercentage = function(percent) { /* [...] */ }
Template.registerHelper('formatCurrency', formatCurrency)
Template.registerHelper('formatPercentage', formatPercentage)
我在客户端代码和Blaze视图上使用direcly formatCurrency
函数。但是当我尝试在meteor服务器上部署时,我在模板助手中得到了异常:ReferenceError:formatCurrency未定义。
视图位于/client/views/{category}/{view_name}.html,因此它们在帮助程序之后加载。
在我的本地服务器上,当我重新加载页面时,我得到了浏览器控制台上的日志,但是当我点击prod服务器时却没有。
有人知道有什么区别吗?
------------- [更新] -------------
看起来好像永远不会被Meteor调用助手文件。如果我没有在助手上使用他们的任何功能,并加载页面就可以了。但是如果我尝试调用一个函数(在控制台上),我有一个undefined
错误,事件在所有页面准备就绪后2秒。
答案 0 :(得分:1)
我认为你的加载顺序可能是错误的。根据文档:http://docs.meteor.com/#/full/structuringyourapp,视图将首先被加载,因为它们具有更深的路径(规则4),这取决于字母顺序(规则5)。
cd /Library/LaunchDaemons
sudo chown root:wheel com.oracle.oss.mysql.mysqld.plist
sudo chmod o-w com.oracle.oss.mysql.mysqld.plist
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
尝试将全局帮助者放入" lib"目录(规则3),例如" client / lib / helpers.js"