0

我正在使用backbone.js将事件路由和绑定到DOM 元素。事件触发并从服务器获取 JSON。

通常,单击一个项目会向服务器发送一个带有该项目id属性的 POST 请求。

但是,我希望显示 url 中的哈希#item_name而不是#id

如果用户点击后退按钮或直接访问页面,我只会有 #item_name, 有没有办法避免在这种情况下进行双重查询。(先查询项目 ID,然后再查询实际查询)

如果不是,这会显着影响直接链接页面加载的性能吗?

4

1 回答 1

0

如果你喜欢这个工作,你的 item_name 必须在数据库中是唯一的。所以它已经是一种身份。在 Backbone 中,您可以设置应该用作每个模型的项目 ID 的属性。

Backbone.Model.prototype.idAttribute = 'some_model_property';

在您的情况下,您必须调用以下内容:

Item.Model.prototype.idAttribute = 'item_name';

如果您现在使用诸如 load() 或 save() 之类的模型函数,Backbone 将使用 item_name 而不是 id 构建项目 url。

POST to /item/item_name
GET /item/item_name

除此之外,您现在可以通过 item_names 从集合中获取这些模型:

var model = myCollection.get(item_name);

唯一的问题是模型只能有一个 id 属性。因此,您将失去使用实际 id 作为这些模型的 id 属性的能力。

于 2011-11-29T07:49:21.733 回答