2012-03-27 1 views
21

In Backbone.js posso nominare in cui il modello è recupera i dati:Backbone.js: urlRoot con stringa di query http?

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

Ma se voglio aggiungere una stringa di query dopo l'URL? per esempio. i dati del libro sono allo /books/1&details=true. Posso specificarlo nel modello?

risposta

22

Dovrai utilizzare una funzione di url personalizzata per il modello.

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

È inoltre possibile utilizzare l'opzione per il metodo prendere

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

Anche se il commento opere ammesse, questo sembra essere il 'via spina dorsale' – Tom

+0

Vorrei che ci fosse un modo per definire su un modello/livello di raccolta. in questo modo devi passare il 'data' ogni volta che chiami il recupero, sarebbe bello se potessi semplicemente impostare' data' sul modello stesso. – roberkules