2016-05-30 68 views
0

我想了解如何正確使用Backbone.js中的toJSON()函數來獲得在線教程。本教程指出:在Backbone.js中使用toJSON()

如果您不記得如何使用JSON,請參考Backbone Model docs

然而,當我跟隨鏈接,並在左側邊欄點擊的toJSON,它只是談論的約JSON.stringify代替toJSON()。有人能告訴我toJSON()函數的正確用法嗎?

回答

1

這只是一個方便的方法 - 例如,當使用model.toJSON()將模型傳遞到模板時,將從模型對象中提取模型屬性供模板使用。你可以輕鬆地通過model.attributes,這也可以插入...我猜「toJSON」的名字的意思是「創建我的模型屬性的表示形式爲JSON」,而不是模型對象的所有其他屬性。

+0

您接受的答案是'Date.prototype.toJSON()'是如何工作的,而不是Backbone的toJSON ... –

+1

檢查Backbone註釋的源代碼以便在操作中清楚地看到它http://backbonejs.org/docs/backbone.html #部-61 –

0

的toJSONmodel.toJSON([options])

返回淺副本的JSON字符串化模型的屬性。這可以在發送到服務器之前用於持久性,序列化或擴充。

重點煤礦

這裏的關鍵是,toJSON返回副本model.attributes,可用於模板和上面提到的許多其他的事情。使用此方法的優點是可以對其進行更改,而不會影響實際模型。

例如,假設您需要在與服務器通信之前轉換數據,例如刪除貨幣分隔符或其他內容 - 您可以更新通過toJSON檢索的數據副本併發送到服務器,而不影響實際屬性。

這些類型的情況主要出現在您使用數據綁定庫(如rivetsjs)(其中模型數據嚴格綁定到UI)時。如果您在實際模型屬性中刪除貨幣分隔符,那麼它將反映在用戶界面中 - 這並不好。希望有助於獲得一個想法。