【发布时间】:2014-12-14 17:03:56
【问题描述】:
我想将简单应用程序的状态存储在模型中,并能够生成包含应用程序完整状态的 URL(即序列化模型)。有没有一种骨干惯用的方式来提供这样的功能?
相关:
【问题讨论】:
-
我认为Backbone.Router是你需要的
我想将简单应用程序的状态存储在模型中,并能够生成包含应用程序完整状态的 URL(即序列化模型)。有没有一种骨干惯用的方式来提供这样的功能?
相关:
【问题讨论】:
Backbone 让您将模型序列化为 JSON,而不是 URL 参数语法。您可以将 JSON 字符串化,对其进行 url 编码,然后将其添加到 uRL ...
var json = yourModel.toJSON();
var jsonString = JSON.stringify(json);
var encoded = encodeURI(jsonString);
var url = 'www.example.com?model_json=' + jsonString;
...但我不会推荐它。 URL 参数从未被设计为以这种方式使用,您可能会遇到很多问题。一个问题是字符长度限制。作为this Stack Overflow answer explains,为了安全起见,url 需要限制为 2000 个字符。根据您在模型中放入的内容,您当然可以毫无意义地超越。
更好的方法是将模型保存在旨在保存它的某个地方,例如服务器上(毕竟,这正是 Backbone.Model 的 save 方法的用途)或本地存储中。然后,您只需在 URL 中输入模型的 ID,您就可以使用该 ID 远程/从本地存储检索数据。
【讨论】: