我试图找出如何正确使用Backbone.js中的toJSON()
函数进行在线教程。该教程指出:
如果您不记得如何使用JSON,请参阅Backbone Model docs。
但是,当我点击链接并点击左侧边栏中的toJSON时,它只会谈到JSON.stringify
而不是toJSON()
。有人能告诉我toJSON()
功能的正确用法吗?
答案 0 :(得分:1)
它只是一种方便的方法 - 例如,当使用model.toJSON()
将模型传递到模板时,将从模型对象中提取模型属性以供模板使用。你可以很容易地传入model.attributes
,那也会插入...我想是" toJSON" name表示"创建我的模型属性的表示形式为JSON"而不是模型对象拥有的所有其他属性。
答案 1 :(得分:1)
toJSON
model.toJSON([options])
返回JSON字符串化的模型属性的浅拷贝。这可以在发送到服务器之前用于持久性,序列化或扩充。
(强调我的)
这里的关键是toJSON
返回model.attributes
的副本,可以用于模板化和上面提到的许多其他事情。使用此方法的优点是您可以对其进行更改而不会影响实际模型。
例如,假设您需要在与服务器通信之前转换数据,例如删除货币分隔符或其他内容 - 您可以更新通过toJSON
检索的数据副本并发送到服务器而不会影响实际属性。
这种情况主要出现在使用数据绑定库(例如rivetsjs)时,模型数据与UI紧密绑定。如果你删除实际模型属性中的货币分隔符,那么它将反映在UI中 - 这是不好的。希望有助于获得一个想法。