我可能不了解某些Backbone逻辑,所以希望你能解释一下。
当我创建模型时,传递一个ID然后获取它,Backbone将模型标记为已更改(对changedAttributes()
的调用将返回所有对象属性)。
当您修改正面的对象属性时,它还会将模型标记为已更改,仅changedAttributes()
返回此属性。
那么如何区分前端(以及未持久)的更改和来自服务器的更改? (有没有特定的事件?)
我之所以这么说的原因是我想保存我的模型,时间,次数,如果有一些正面更改或用户退出。
[编辑] 我的场景是(我与Angular合作):
我的网页的网址格式为:object /#/:id
我的页面是对象的编辑器(一些输入)。
当URL中的ID更改时,我从服务器获取相应的对象。但是如果已经存在某些东西(比如用户手动更改了ID),我需要先保存对象所做的任何事情。
答案 0 :(得分:2)
Backbone中没有真正跟踪模型/集合的变化,它会告诉您什么或者是否有变化。你必须自己做这件事。
您当然可以检查当前更改循环的更改。因此,在事件处理程序中,您使用model.on("change", () => ...)
。在将其保存在服务器上之后,您可能希望实现一个跟踪更改并可能重置它的处理函数