每次发生变化时,我都想在模型上触发自动保存,但前提是变化来自 UI(即视图)。我的意思是,如果更改来自数据库,那么再次保存它没有意义,它只是来自数据库......
但是fetch
并且save
可以触发change
事件(fetch
因为它可能带来模型的不同状态,并且可以为新创建的save
模型带来id
)
所以在这种情况change
下,我想知道是什么导致了这种变化。
例如,这是来自视图的呼叫吗?:
this.model.set("foo", "bar"); //triggers a change event as foo's value changed
还是同步操作的结果?:
model.fetch(); //triggers a change event as the model changed in the DB
model.save(); //triggers a change event as the id was empty
有没有办法区分它们?
set
一旦我想到的解决方案是用一种方法包装对模型的视图调用setAttribute
,并触发一个自定义changeDueToUIAction
事件,但我确信这已经解决了,而且我确信以更好的方式......
还是我完全错过了一些东西,问题是我问错了问题?