我一直试图解决这个问题已经有一段时间了,觉得我已经尝试了所有的东西。
我在名为details的用户下有一个嵌套集合。我从客户端更新详细信息字段没有问题,但我显然希望通过服务器运行更新以确保安全性。
这是我的服务器代码:
//server code
Meteor.methods({
updateProfile : function() {
Meteor.users.update({ _id: Meteor.userId() }, { $set: { "details.phoneNumber" : phoneNumber }
});
}
});
我的客户代码:
Template.userEdit.events({
'submit updateProfile' : function(e, t){
e.preventDefault();
var firstName = e.target.phoneNumber;
Meteor.call('phoneNumber');
}
});
目前我正在发布/订阅整个用户集合:
// Server
Meteor.publish("allUserData", function () {
return Meteor.users.find();
});
// Client
Tracker.autorun(function () {
Meteor.subscribe("allUserData");
});
答案 0 :(得分:2)
您的服务器方法称为“updateProfile”,但您在客户端上调用“phoneNumber”。在您的情况下,如下调用Meteor方法:
<%= @symptoms_illness.illness.name %>
<%= @symptoms_illness.symptom.name %>
您的服务器方法必须接受一个参数作为输入:
Meteor.call("updateProfile", phoneNumber);