Javascript Meteor使用Template.registerHelpers未能找到函数
我编写meteor 1.2.1 registerHelper函数,如下所示:Javascript Meteor使用Template.registerHelpers未能找到函数,javascript,templates,meteor,meteor-blaze,meteor-helper,Javascript,Templates,Meteor,Meteor Blaze,Meteor Helper,我编写meteor 1.2.1 registerHelper函数,如下所示: Template.registerHelper('UserisRole', function(user, role){ if (user.roles[Roles.GLOBAL_GROUP].indexOf(role)>-1) return true; else { return false; } }); ... ... Template.TableActionBtns.events({ 'click
Template.registerHelper('UserisRole',
function(user, role){
if (user.roles[Roles.GLOBAL_GROUP].indexOf(role)>-1)
return true;
else {
return false;
}
});
...
...
Template.TableActionBtns.events({
'click #btnRemove': function(){
var tmpuser=Meteor.user();
if (UserisRole(tmpuser,'admin')) { //error happens for UserisRole is not defined
Accounts.users.remove({id:this._id});
//Session.set("albumID", this._id);
} else {
var title = "Remove not allowed";
var msg = "Please login as admin to remove it";
toastr.warning(msg, title);
}
}});
我以前注册过UserisRole函数,为什么meteor模板仍然无法找到我在上面注册的函数?这应该可以:
UserisRole = function (user, role) {
if (user.roles[Roles.GLOBAL_GROUP].indexOf(role)>-1) {
return true;
} else{
return false;
}
}
Template.TableActionBtns.events({
'click #btnRemove': function(){
var tmpuser=Meteor.user();
if (UserisRole(tmpuser,'admin')) { //error happens for UserisRole is not defined
Accounts.users.remove({id:this._id});
//Session.set("albumID", this._id);
} else {
toastr.warning("Please login as admin to remove it", "Remove not allowed");
}
}
});
要访问全局帮助程序,您需要像下面那样使用它
UI._globalHelpers['UserisRole'](user, role)
但更好的方法是创建一个函数并向全局帮助器注册该函数
UserisRole = function(user, role){
if (user.roles[Roles.GLOBAL_GROUP].indexOf(role)>-1)
return true;
else {
return false;
}
}
Template.registerHelper(UserisRole);
通过这种方式,您可以通过简单的函数调用在js中调用函数
UserisRole(user,role)
或者在模板中
{{UserisRole user role}}
您可以在加载模板或类似内容之前加载帮助程序 在堆栈上搜索meteor项目目录结构
- 流星计划
-
-dir客户端
- 有一个
subdirlib
- 有一个
您可以将javascript放在meteor项目文件夹、客户端文件夹和lib文件夹中。结果会有所不同。我知道它可以工作,我只是想知道registerHelper是如何工作的,因为我需要让这个函数在所有模板上都工作。我想你不知道meteor.js模板和助手是使用默认的meteor.js。