Javascript 如何删除Meteor中的文档
如何删除Meteor中的文档。我遇到了这个错误 “未捕获错误:不允许。不受信任的代码只能删除。” ID为[403]的文档” list.jsJavascript 如何删除Meteor中的文档,javascript,meteor,Javascript,Meteor,如何删除Meteor中的文档。我遇到了这个错误 “未捕获错误:不允许。不受信任的代码只能删除。” ID为[403]的文档” list.js Template.KullaniciListele.events({ 'click #delete': function (id, template) { Meteor.users.remove({_id:id}); } }); users.html {{#each kullaniciList}} <tr>
Template.KullaniciListele.events({
'click #delete': function (id, template) {
Meteor.users.remove({_id:id});
}
});
users.html
{{#each kullaniciList}}
<tr>
<td><a href="javascript:;" id="delete" >delete</a>
</tr>
{/each}}
{{{#每个kullaniclist}
{/each}
将事件
对象作为其第一个参数。因此,您的代码正在执行以下操作:
Meteor.users.remove({_id: event});
因为event
不是字符串,所以您得到了一个错误。假设kullaniclist
中的每个项目都包含一个\u id
(他们是用户吗?),那么您的代码可能如下所示:
Template.KullaniciListele.events({
'click .delete': function (event) {
event.preventDefault();
Meteor.users.remove(this._id);
}
});
请注意,一个页面上只能有一个#delete
id,因此我将其切换为一个类。模板中的对应行应为:
<td><a href="#" class="delete">delete</a></td>
警告这只是为了让某些功能正常工作-请不要将其添加到生产代码中,因为它允许任何用户删除任何其他用户。要正确执行此操作,您需要确保调用方是管理员或其他人,但这超出了此问题的范围。我应用了您的代码,但出现以下错误“删除失败:拒绝访问。方法“删除”的受限集合上未设置允许验证程序”。您需要允许规则或方法。请参阅更新的答案。
if (Meteor.isServer) {
Meteor.users.allow({
remove: function(userId, doc) {
// JUST FOR TESTING - NEVER DO THIS IN PRODUCTION
return true;
}
});
}