【发布时间】:2013-10-07 12:01:04
【问题描述】:
在 Meteor 中,我们通常将 javascript 函数附加到模板。我们在哪里放置标准的 javascript 函数?
例如,在我的一个应用程序中,我有一个 UserInfo.js 文件,其中包含一系列用于处理用户登录和获取用户信息的 javascript 函数。
以下是我在 UserInfo.js
中的两个函数文件位于 client/scripts 文件夹中:
isAdminById = function(userId) {
var user;
user = Meteor.users.findOne(userId);
return user && isAdmin(user);
};
isAdmin = function(user) {
if (!user || typeof user === 'undefined') {
return false;
} else {
return !!user.isAdmin;
}
};
当我运行应用程序并从浏览器控制台调用 isAdmin() 时,它会显示:
ReferenceError: isAdmin is not defined
---- 编辑----
当我将 javascript 文件放在 client/compatibility 文件夹下时,问题似乎已暂时解决,但现在问题又出现了。我记得唯一改变的是打电话给>> Meteor Reset
更多信息:
我认为当我使用咖啡脚本时会出现问题。当我将咖啡脚本文件转换为 js 文件时,一切似乎都正常。
【问题讨论】:
-
您编写的所有内容在 v0.6.5.1 中都可以正常工作。你运行的是什么流星版本?
-
您可能在浏览器加载之前调用了您的函数。确保对
isAdmin的每次调用都在启动后执行的函数内。 -
我正在运行版本 v0.6.5.1。在应用程序加载并运行后,我尝试从 Firebug 控制台调用 isAdmin。
-
嗨@FreeLancer,如果你把repro上传到github,其他人调试起来会容易很多。
标签: javascript node.js meteor