在Backbone.js中使用toJSON()

时间:2016-05-30 19:12:35

标签: javascript json backbone.js

我试图找出如何正确使用Backbone.js中的toJSON()函数进行在线教程。该教程指出:

  

如果您不记得如何使用JSON,请参阅Backbone Model docs

但是,当我点击链接并点击左侧边栏中的toJSON时,它只会谈到JSON.stringify而不是toJSON()。有人能告诉我toJSON()功能的正确用法吗?

2 个答案:

答案 0 :(得分:1)

它只是一种方便的方法 - 例如,当使用model.toJSON()将模型传递到模板时,将从模型对象中提取模型属性以供模板使用。你可以很容易地传入model.attributes,那也会插入...我想是" toJSON" name表示"创建我的模型属性的表示形式为JSON"而不是模型对象拥有的所有其他属性。

答案 1 :(得分:1)

  

toJSON model.toJSON([options])

     

返回JSON字符串化的模型属性的浅拷贝。这可以在发送到服务器之前用于持久性,序列化或扩充。

强调我的

这里的关键是toJSON返回model.attributes副本,可以用于模板化和上面提到的许多其他事情。使用此方法的优点是您可以对其进行更改而不会影响实际模型。

例如,假设您需要在与服务器通信之前转换数据,例如删除货币分隔符或其他内容 - 您可以更新通过toJSON检索的数据副本并发送到服务器而不会影响实际属性。

这种情况主要出现在使用数据绑定库(例如rivetsjs)时,模型数据与UI紧密绑定。如果你删除实际模型属性中的货币分隔符,那么它将反映在UI中 - 这是不好的。希望有助于获得一个想法。