Mongodb 为什么没有从客户端调用meteor server方法来删除文档?
我想学一点流星的咬法。这是我在客户端的活动:Mongodb 为什么没有从客户端调用meteor server方法来删除文档?,mongodb,meteor,Mongodb,Meteor,我想学一点流星的咬法。这是我在客户端的活动: Template.todos_list.events({ 'click .todo-done': function () { console.log(this); Meteor.call('updateToDo', this._id, !this.completed); }, 'click .single-delete': function () { Meteor.call('sin
Template.todos_list.events({
'click .todo-done': function () {
console.log(this);
Meteor.call('updateToDo', this._id, !this.completed);
},
'click .single-delete': function () {
Meteor.call('singleDelete');
//Todos.remove(this._id); **<-- this works when insecure is activated**
console.log('clicked the ' + this._id)
}
});
我还尝试在服务器端使用Todos.remove(this.\u id),但也不起作用。它只在客户端起作用
我错过了什么
谢谢你们大家,
Amir我认为您必须将对象的_id传递给singleDelete函数 客户端的更改:
Meteor.call('singleDelete', this._id);
以及服务器端的更改:
Meteor.methods({
addTodo: function (title) {
Todos.insert({
title: title,
completed: false
})
},
singleDelete: function() {
Todos.remove({_id: this._id});
}
});
singleDelete: function(todoId) {
Todos.remove({_id: todoId});
}
//编辑:我为Javascript添加了一个短链接,用于此行为:
搜索“This”
基本上,this关键字允许您访问当前正在处理的对象:就像变色龙一样,它会根据周围环境不断变化
//编辑2:另一个伟大的参考:
这个
的工作原理
JavaScript对于这个特殊名称的定义与大多数其他编程语言不同。有五种不同的方式可以在语言中定义它的价值