Backbone.js:带有http查询字符串的urlRoot?

Posted

技术标签:

【中文标题】Backbone.js:带有http查询字符串的urlRoot?【英文标题】:Backbone.js: urlRoot with http query string? 【发布时间】:2012-04-10 16:02:01 【问题描述】:

Backbone.js 中,我可以指定模型从哪里获取数据:

var Book = Backbone.Model.extend(urlRoot : '/books');
var mybook = new Book(id: "1");
mybook.fetch();  //it will access '/books/1'

但是如果我想在 URL 之后附加一个查询字符串呢?例如图书数据位于/books/1&details=true。我可以在模型中指定吗?

【问题讨论】:

【参考方案1】:

您也可以使用方法 fetch 的选项

mybook.fetch(data:details: true);

【讨论】:

虽然接受的评论有效,但这似乎是“骨干方式” 我希望有一种方法可以在模型/集合级别定义它。这样,您每次调用 fetch 时都必须传递 data,如果您可以在模型本身上设置一次 data,那就太好了。【参考方案2】:

您必须为模型使用自定义 url 函数。

Book.url = function() 
  return this.urlRoot + '/' + this.id + '?details=true';
;

【讨论】:

以上是关于Backbone.js:带有http查询字符串的urlRoot?的主要内容,如果未能解决你的问题,请参考以下文章

初探Backbone

带有stickit.js的backbone.js嵌套对象属性

带有 Rest API 的 Backbone.js

渲染 Backbone.js 集合

Backbone.js 状态管理/基于 url 片段的视图初始化

弹出窗口 - jQuery Mobile、Backbone.js 和 Require.js