如何在流星js中添加方法?

时间:2013-11-30 06:13:09

标签: javascript meteor

如何在meteorjs中将新方法附加到集合对象?

user = Meteor.user()
user.newMethod() // how/where do I attach this function?

2 个答案:

答案 0 :(得分:2)

事情是Meteor.user()返回Meteor.findOne({_id: Meteor.userId()});之类的结果,所以你必须重新定义整个方法,因为没有原型对象。

客户端js,服务器js或两者:

Meteor.startup(function() {
    Meteor.user = function() {
       var user = Meteor.users.findOne({_id: Meteor.userId()});

       if(!user) return null;

       _.extend(user, {   // Lodash method https://lodash.com/docs/4.17.4#assign
           newMethod: function() {
              //Do something
           },
           newMethod1: function() {
              //Do something
           }
       });

       return user;
   }
});

答案 1 :(得分:0)

你可以这样做:

user = Meteor.user();
user.newMethod = function () {
  // Do something
};

以及稍后

user.newMethod();