我试图通过传递对象的_id来从服务器端通过Meteor.methods从集合中删除单个文档,但它不是删除对象,也尝试了该文档中的其他字段但没有去。
我也尝试过FoodCategory.remove(removeID);这也行不通。
<template name="categoryDisplaySection">
<div class="row categoryDisplay">
<div class="col-md-10 col-lg-10 ">
{{Category}}
</div>
<div class="col-md-2 col-lg-2 pull-right">
<i class="fa fa-minus-square"></i>
</div>
</div>
<div class="row ">
<div class="col-md-12 col-lg-12 identity">
{{_id}}
</div>
</div>
</template>
在.JS文件中,我将此_id传递给Meteor方法deleteFoodCategory
Template.categoryDisplaySection.events({
'click .fa-minus-square':function(evt,tmpl)
{
var remove_id = tmpl.$(".identity").text();
alert(remove_id);
/*****Server side call for document remove *****/
Meteor.call("deleteFoodCategory",remove_id,
function(error,result)
{ alert(result); });
}
});
Meteor.methods({
deleteFoodCategory: function(removeID)
{
return FoodCategory.remove({
'_id' : removeID
},
function(error,id)
{
if(id) { return id;} else { return error; }
});
}
});
如果我把_id放在&#34; RAEnLfomeqctuonnE&#34;代替变量removeID。我尝试过各种各样的选项,比如&#39; _id&#39;或者只是_id没有引号,无法弄清楚问题。请看看
答案 0 :(得分:3)
从_id
文本中获取文档div
是过度的,您可以使用当前的数据上下文:
Template.categoryDisplaySection.events({
"click .fa-minus-square": function(evt,tmpl){
var removeId = this._id;
alert(removeId);
Meteor.call("deleteFoodCategory", removeId);
});
在您的Meteor方法中,您只需将_id
传递给Collection.remove
:
Meteor.methods({
deleteFoodCategory: function(removeId){
return FoodCategory.remove(removeId);
}
});
答案 1 :(得分:1)
saimeunt提供的答案也正常工作,就原始问题而言,需要使用带有remove_id变量的.trim函数
Scheduler
但正如@saimeunt所说从div文本中获取文档_id是过度的,所以从现在开始使用this_id