有没有办法根据Meteor中的用户角色附加模板事件?

时间:2014-02-05 16:43:32

标签: javascript node.js meteor handlebars.js

我很想知道,因为我无法弄明白,如果有办法附加Meteor的模板事件,例如:

Template.businessOperations.events({
    'dblclick .display': function (evt, tmpl) {
       //DO SOMETHING;
    }
}

基于当前用户的角色。

例如:

if (Meteor.user().profile.type === 'admin') {
  Template.businessOperations.events({
      'dblclick .display': function (evt, tmpl) {
         //DO SOMETHING;
      }
  }
}

我已经尝试了它并且它不起作用,我也尝试从实际的事件方法中获取用户,但它也没有用,我在这里没有看到正确的解决方案。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

仅当用户是管理员时才绑定事件是棘手的,因为在评估模板代码时,用户可能没有登录。如您所建议,在事件处理程序内部进行检查似乎完美无缺合理。我会这样写:

Template.businessOperations.events({
  'dblclick .display': function() {
    if (Meteor.user() && (Meteor.user().profile.type === 'admin')) {
      console.log('double click and admin!');
    }
  }
});

我添加了对Meteor.user()的额外检查以防止用户未登录的情况。如果不可能,您可以将其删除。