javascript – backbone.js:自上次伺服器儲存以來是否有變化?
我有一個骨幹模型.
使用model.set()我可以設定一個本地值,使用model.save()我可以將整個模型儲存到伺服器.
我如何知道自上次伺服器儲存以來是否發生變化,意味著本地版本是髒的.
model.isNew();只有當該模型從未儲存到伺服器中時才起作用.
編輯:這個答案是在1.0版本的骨幹之前編寫的.截至目前的Backbone版本(1.2.2)hasChanged不再反映“自上次儲存”更改.相反,它反映了“自上次設定”以來的變化.
聽取更改事件或檢查hasChanged.
如果型號發生變化,您可以儲存更改.更改事件發生時,甚至可以將儲存方法連線起來.
如果您不想儲存更改,請設定模型為髒的屬性,並在顯式儲存時將其清除.
就像是:
change: function(){ this.dirty = true; } save: function(){ // do your save if(success){ this.dirty = false; } } isDirty: function(){ return this.dirty }
http://stackoverflow.com/questions/9215036/backbone-js-is-there-a-change-since-last-server-save