Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
Backbone.js 主干模型侦听器在模型保存后立即停止工作_Backbone.js - Fatal编程技术网

Backbone.js 主干模型侦听器在模型保存后立即停止工作

Backbone.js 主干模型侦听器在模型保存后立即停止工作,backbone.js,Backbone.js,在主干视图的initialize函数中,我创建了以下侦听器: this.listenTo(this.model.get('clusters'), 'add remove', this.saveChanges); 这将成功地导致在第一次从“群集”集合添加/删除模型时调用my saveChanges函数。saveChanges函数中只有一行: this.model.save(); 一旦被调用,添加/删除集群将不再调用“添加”或“删除”事件。为什么保存模型会破坏侦听器?这是可以防止的,还是有办法重

在主干视图的initialize函数中,我创建了以下侦听器:

this.listenTo(this.model.get('clusters'), 'add remove', this.saveChanges);
这将成功地导致在第一次从“群集”集合添加/删除模型时调用my saveChanges函数。saveChanges函数中只有一行:

this.model.save();
一旦被调用,添加/删除集群将不再调用“添加”或“删除”事件。为什么保存模型会破坏侦听器?这是可以防止的,还是有办法重新建立监听器


还是说我对模型和/或集合有什么基本的不了解…?

让我们来分析一下您的代码:

你写

this.listenTo(this.model.get('clusters'), 'add remove', this.saveChanges);
这等于

var clusters = this.model.get('clusters');
this.listenTo(clusters, 'add remove', this.saveChanges);
现在,我只假设在获得该事件后,您将
set()
一个新的
对象聚集在您的模型中

这里的问题是,您的视图仍然侦听来自同一个旧
集群
对象的事件,这不再相关-您的模型处理另一个对象


另一种情况可能是,当视图被
remove
d.时,主干将从其模型中清除视图的事件处理程序。。如果您愿意共享整个代码,您可以很容易地确定答案。

事实上,保存模型会导致调用其“parse”函数,我注意到它正在为“clusters”设置一个新值(我没有编写此代码,只是试图理解和改进它)。谢谢你的提示!我仍然需要弄清楚parse是如何/为什么做它正在做的事情的,但至少我现在知道侦听器的行为是我认为它应该做的。。。