Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 为什么没有从客户端调用meteor server方法来删除文档?_Mongodb_Meteor - Fatal编程技术网

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对于这个特殊名称的定义与大多数其他编程语言不同。有五种不同的方式可以在语言中定义它的价值