我想了解如何正確使用Backbone.js中的toJSON()
函數來獲得在線教程。本教程指出:在Backbone.js中使用toJSON()
如果您不記得如何使用JSON,請參考Backbone Model docs。
然而,當我跟隨鏈接,並在左側邊欄點擊的toJSON,它只是談論的約JSON.stringify
代替toJSON()
。有人能告訴我toJSON()
函數的正確用法嗎?
我想了解如何正確使用Backbone.js中的toJSON()
函數來獲得在線教程。本教程指出:在Backbone.js中使用toJSON()
如果您不記得如何使用JSON,請參考Backbone Model docs。
然而,當我跟隨鏈接,並在左側邊欄點擊的toJSON,它只是談論的約JSON.stringify
代替toJSON()
。有人能告訴我toJSON()
函數的正確用法嗎?
這只是一個方便的方法 - 例如,當使用model.toJSON()
將模型傳遞到模板時,將從模型對象中提取模型屬性供模板使用。你可以輕鬆地通過model.attributes
,這也可以插入...我猜「toJSON」的名字的意思是「創建我的模型屬性的表示形式爲JSON」,而不是模型對象的所有其他屬性。
的toJSON
model.toJSON([options])
返回淺副本的JSON字符串化模型的屬性。這可以在發送到服務器之前用於持久性,序列化或擴充。
(重點煤礦)
這裏的關鍵是,toJSON
返回副本model.attributes
,可用於模板和上面提到的許多其他的事情。使用此方法的優點是可以對其進行更改,而不會影響實際模型。
例如,假設您需要在與服務器通信之前轉換數據,例如刪除貨幣分隔符或其他內容 - 您可以更新通過toJSON
檢索的數據副本併發送到服務器,而不影響實際屬性。
這些類型的情況主要出現在您使用數據綁定庫(如rivetsjs)(其中模型數據嚴格綁定到UI)時。如果您在實際模型屬性中刪除貨幣分隔符,那麼它將反映在用戶界面中 - 這並不好。希望有助於獲得一個想法。
您接受的答案是'Date.prototype.toJSON()'是如何工作的,而不是Backbone的toJSON ... –
檢查Backbone註釋的源代碼以便在操作中清楚地看到它http://backbonejs.org/docs/backbone.html #部-61 –