我有一个显示给用户的Errors
集合。我想在用户收到错误时插入此集合,因此可以在模板中显示。
我的收藏品中有一些挂钩会拒绝它。
// only admins can create and update plans
Plans.allow({
insert: function(userId, doc) {
return Roles.userIsInRoles(userId, 'admin');
},
update: function(userId, doc) {
return Roles.userIsInRoles(userId, 'admin');
}
});
// Can only have one active plan currently
Plans.deny({
update: function(userId, doc) {
var now = new Date();
Plans.find({
active: true,
_id: { $in: doc.planIds },
dateStart: { $gt: now },
dateEnd: { $lt: now }
}).count() > 0;
}
});
我的问题是;我可以收听这些事件吗?如果被拒绝,可以在客户端和服务器上执行特定操作吗?
答案 0 :(得分:1)
您可以通过回调函数在您拥有的任何insert/update/remove
上插入集合。
如果您想在服务器上进行操作(唱Meteor.methdos/Meteor.call
),这就是工作流程。
<强> JS 强>
//server
Meteor.method({
insertDoc:function(doc){
Plans.insert(doc)
}
})
//Client
Errors = new Mongo.Collection(null) //client side only
Meteor.call('insertDoc',{test:doc},function(err,result){
if(err){
Error.insert({error:err.reason}) //if there is a error lets insert it
}
})
//and the helper to show the error.
Template.example.helpers({
showError:function(){
return Error.find();
}
})
<强> HTML 强>
<template name="example">
<span>Sorry there was an error: {{error}}</span>
</template>
你明白了。