Javascript 如何知道带主干线的前端模型何时发生变化?
我可能不理解一些基本逻辑,所以希望你能给我解释一下 当我创建一个模型时,向它传递一个ID,然后获取它,主干将模型标记为已更改(调用Javascript 如何知道带主干线的前端模型何时发生变化?,javascript,angularjs,backbone.js,Javascript,Angularjs,Backbone.js,我可能不理解一些基本逻辑,所以希望你能给我解释一下 当我创建一个模型时,向它传递一个ID,然后获取它,主干将模型标记为已更改(调用changedAttributes()返回所有对象属性) 在前端修改对象属性时,它也会将模型标记为已更改,只有该属性由changedAttributes()返回 那么,如何区分前端所做的更改(因此,不是持久化的)和来自服务器的更改呢?(是否有任何具体事件?) 我问这个问题的原因是,如果前端发生了一些更改或者用户退出,我希望一次又一次地保存我的模型 [编辑] 我的场景是
changedAttributes()
返回所有对象属性)
在前端修改对象属性时,它也会将模型标记为已更改,只有该属性由changedAttributes()
返回
那么,如何区分前端所做的更改(因此,不是持久化的)和来自服务器的更改呢?(是否有任何具体事件?)
我问这个问题的原因是,如果前端发生了一些更改或者用户退出,我希望一次又一次地保存我的模型
[编辑]
我的场景是(我使用Angular):
我的页面的URL的格式为:object/#/:id
我的页面是对象(一些输入)的编辑器
当URL中的ID更改时,我从服务器获取相应的对象。但是如果已经有了一些东西(比如用户手动更改ID),我需要先保存对对象所做的任何操作。主干中没有对模型/集合更改的实际跟踪,这会告诉您更改了什么或是否有更改。你必须自己做这件事
当然,您可以检查当前更改循环的更改。因此,在事件处理程序中,您可以使用类似于
model.on(“change”,()=>…)
。您可能希望实现一个处理程序函数,跟踪更改,并在将更改保存到服务器上后重置它。主干中没有对模型/集合更改的实际跟踪,它会告诉您更改了什么或更改了什么。你必须自己做这件事
当然,您可以检查当前更改循环的更改。因此,在事件处理程序中,您可以使用类似于
model.on(“change”,()=>…)
。您可能希望实现一个处理函数,跟踪更改,并在将更改保存到服务器上后重置它文档中说“自上次设置以来已更改的模型属性”,因此您是调用set/调用set的内部方法的人。您怎么能不知道模型数据是否已更改?你能举个例子吗?我更新了帖子。希望有帮助。我不明白的是,如果不是在获取之后,模型的状态何时设置为“干净”(或“未更改”)。可能是在您第一次创建它时,直到您执行第一个设置为止。所以你用的是角度+主干线。。。那太疯狂了。。。你为什么这么做?我怀疑这会有个好结局。。。无论如何,祝你好运……文档上说“模型的属性自上次设置以来已经更改”,所以你是调用set的set/内部方法的人。你怎么能不知道模型数据是否已更改?你能举个例子吗?我更新了帖子。希望有帮助。我不明白的是,如果不是在获取之后,模型的状态何时设置为“干净”(或“未更改”)。可能是在您第一次创建它时,直到您执行第一个设置为止。所以你用的是角度+主干线。。。那太疯狂了。。。你为什么这么做?我怀疑这会有个好结局。。。不管怎样祝你好运。。。