Javascript Meteor JS使用_id从集合中删除单个元素
我正试图通过传递对象的_id从服务器端的集合中删除Meteor.methods中的单个文档,但它没有删除对象,还尝试了该文档中的其他字段,但没有成功 我也尝试过食物分类法;这也是行不通的 文件1-displayCategorySection.html 服务器端文件3-FoodCategorySection.js包含deleteFoodCategory方法Javascript Meteor JS使用_id从集合中删除单个元素,javascript,node.js,mongodb,meteor,Javascript,Node.js,Mongodb,Meteor,我正试图通过传递对象的_id从服务器端的集合中删除Meteor.methods中的单个文档,但它没有删除对象,还尝试了该文档中的其他字段,但没有成功 我也尝试过食物分类法;这也是行不通的 文件1-displayCategorySection.html 服务器端文件3-FoodCategorySection.js包含deleteFoodCategory方法 Meteor.methods({ deleteFoodCategory: function(r
Meteor.methods({
deleteFoodCategory: function(removeID)
{
return FoodCategory.remove({
'_id' : removeID
},
function(error,id)
{
if(id) { return id;} else { return error; }
});
}
});
如果我将_id如“raenlfomeqctoonne”替换为变量removeID,代码工作正常。我尝试了各种选项,如“\u id”或仅仅是没有引号的\u id,无法解决问题。请查看从
div
文本中提取文档\u id
,这样做太过分了,您可以改为使用当前数据上下文:
Template.categoryDisplaySection.events({
"click .fa-minus-square": function(evt,tmpl){
var removeId = this._id;
alert(removeId);
Meteor.call("deleteFoodCategory", removeId);
});
在Meteor方法中,您只需将\u id
传递给集合。删除:
Meteor.methods({
deleteFoodCategory: function(removeId){
return FoodCategory.remove(removeId);
}
});
Saimemount提供的答案也能正常工作,就原始问题而言,需要使用带有remove_id变量的.trim函数
文件2-categoryDisplaySection.js
但是正如@saimemount所说,从div文本中获取文档id是一种过火的行为,因此从现在开始使用此id是可行的,但我将尝试找出我的代码的错误,因为我在服务器端尝试了相同的代码,我不认为不使用此id会导致代码不起作用,但是感谢您的帮助。请在使用var remove_id=tmpl.$(“.identity”).text()时查找问题;如果我使用remove\u id=remove\u id,则需要应用.trim()函数。trim()代码工作正常,不是什么大问题,但这个小错误使它变得更好,感谢您的帮助
Template.categoryDisplaySection.events({
"click .fa-minus-square": function(evt,tmpl){
var removeId = this._id;
alert(removeId);
Meteor.call("deleteFoodCategory", removeId);
});
Meteor.methods({
deleteFoodCategory: function(removeId){
return FoodCategory.remove(removeId);
}
});
Template.categoryDisplaySection.events({
"click .fa-minus-square": function(evt,tmpl){
var remove_id = tmpl.$(".identity").text();
/**This line needed to be added**/
removeId = remove_id.trim();
alert(removeId);
/*****Server side call for data insert *****/
Meteor.call("deleteFoodCategory",removeId);
})