如何知道何时使用Backbone改变模型?

时间:2016-04-19 15:54:31

标签: javascript angularjs backbone.js

我可能不了解某些Backbone逻辑,所以希望你能解释一下。

当我创建模型时,传递一个ID然后获取它,Backbone将模型标记为已更改(对changedAttributes()的调用将返回所有对象属性)。

当您修改正面的对象属性时,它还会将模型标记为已更改,仅changedAttributes()返回此属性。

那么如何区分前端(以及未持久)的更改和来自服务器的更改? (有没有特定的事件?)

我之所以这么说的原因是我想保存我的模型,时间,次数,如果有一些正面更改或用户退出。

[编辑] 我的场景是(我与Angular合作):

我的网页的网址格式为:object /#/:id

我的页面是对象的编辑器(一些输入)。

当URL中的ID更改时,我从服务器获取相应的对象。但是如果已经存在某些东西(比如用户手动更改了ID),我需要先保存对象所做的任何事情。

1 个答案:

答案 0 :(得分:2)

Backbone中没有真正跟踪模型/集合的变化,它会告诉您什么或者是否有变化。你必须自己做这件事。

您当然可以检查当前更改循环的更改。因此,在事件处理程序中,您使用model.on("change", () => ...)。在将其保存在服务器上之后,您可能希望实现一个跟踪更改并可能重置它的处理函数