2012-03-27 7 views
21

В Backbone.js я могу назначить, где модель получает свои данные:Backbone.js: urlRoot с HTTP-строкой запроса?

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. Могу ли я указать это в модели?

ответ

22

Вам понадобится использовать пользовательскую функцию URL для модели.

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

Вы также можете использовать параметр для метода выборки

mybook.fetch({data:{details: true}}); 
+1

Несмотря на то, принятых комментарий работ, это, кажется, «магистральная дорога» – Tom

+0

Я хотел бы был способ определить его на модель/уровень коллекции. таким образом, вы должны передавать «данные» каждый раз, когда вы вызываете выборку, было бы неплохо, если бы вы могли просто установить «данные» один раз на самой модели. – roberkules