使用Angular Meteor的服务器方法更新Meteor客户端对象
Meteor client side object update after server method using Angular-Meteor
我有一个关于Meteor的一般问题,它的客户端更新与angular相结合。
让我们假设我使用的是meters-Accounts捆绑包,并使用充满用户对象的"用户"集合(或任何其他集合,这无关紧要)。现在我想建立一个详细信息页面,如果我想显示一个用户对象的详细信息。
在这个页面上,我订阅了以下出版物:
// server code
Meteor.publish('userDetails', function(userId) {
return Meteor.users.find({ _id: userId });
});
在客户端,我订阅并加载这样的对象:
$scope.user = $scope.$meteorObject(Meteor.users, userId, false)
.subscribe('userDetails', userId);
在详细信息页面上有一个按钮,该按钮触发流星方法,该方法更新服务器端当前显示的用户对象。类似这样的东西:
模板:
// client template
<div>User object: {{user}}</div>
<button ng-click="modifyUser()">Do it!</button>
控制器:
// client controller
...
$scope.modifyUser = function() {
$meteor.call('updateUser', $scope.user._id, 'foo').then(function(result) {
...
}, function(err) {
...
});
}
服务器方法:
// server
Meteor.methods({
updateUser: function(userId, someValue) {
return Meteor.users.update({ _id: userId }, { $set: { 'profile.someValue': someValue }});
}
});
现在我的问题是:
我所期望的是在updateUser
客户端方法调用之后自动更新用户对象。但实际上什么都没发生。我做错了什么?
一般情况下:如何触发在服务器上修改的模型的客户端更新?使用Meteor Angular时如何实现这一点?
我找到了问题的原因:我的所有Meteor.methods(...)
都只在服务器端定义。现在一切似乎都如预期的那样。
相关文章:
- 更新属性工作不正常Meteor/MongoDB
- 从客户端更新Meteor.users
- Meteor.js只更新一个参数,而不是整个集合
- 登录后Meteor更新集合
- Meteor使用对象更新集合
- Meteor AutoForm:如何基于其他控件更新选择选项
- Meteor Update集合-未捕获错误:不允许.不受信任的代码只能通过ID更新文档.[403]
- 在Meteor.js中通过同一路线内的锚点标签更新视图
- 增加Meteor.observe的更新频率
- 角流星不适用于meteor 1.3更新
- 在插入数据库后更新 Meteor js 中的客户端视图
- Meteor - 被动更新未渲染的数据
- 从服务器更新的 meteor 集合,不会在客户端上被动排序
- 如何使用Reactivevar更新Meteor中的数据
- 如何使用 meteor 定期更新变量
- 通过 Meteor 更新 KineticJS Canvas 元素
- Meteor JS渲染和DOM更新
- Meteor:更新文档数组中的嵌套对象
- 键盘滞后的Meteor更新
- Meteor 0.8.0更新抛出了一个“非功能”;错误