2013-12-16 14 views
6

Sto cercando di imparare Backbone.jsBackbone.js Collection fetch() Genera TypeError Uncaught: Impossibile leggere la proprietà 'idAttribute' undefined

Doveva farlo funzionare a GET, PUT e DELETE un unico modello. Ma, quando creo una collezione, l'operazione di recupero metodo dà questo errore: Uncaught TypeError: Impossibile leggere la proprietà 'idAttribute' di indefinito (backbone.js: 683)

Qui è il codice che sto cercando:

Person = Backbone.Model.extend({ 
    urlRoot: '/people' 
}); 

PersonList = Backbone.Collection.extend({ 
    model: 'Person', 
    url: '/people' 
}); 

var personList = new PersonList(); 
personList.fetch(); 

Sul fetch, il server restituisce il seguente JSON, che mi sembra corretto:

[{"id":1,"name":"Matt","description":"Worker"},{"id":3,"name":"Test","description":"Test person"}] 

sto usando jQuery 2.0.3 (anche provato 1.10.2), Underscore.js 1.5.2 e la spina dorsale .js 1.1.0

Cosa sto sbagliando?

+0

Per i principianti, 'model' dovrebbe fare riferimento a un costruttore non a una stringa. Prova 'modello: Person' quando estendi il' PersonList'. – fbynite

+0

@fbynite Grazie. Penso che sia stato risolto. Se avessi fatto una risposta, l'avrei accettato ... – user2736142

risposta

10

Quando si estende uno Backbone.Collection, model dovrebbe essere un riferimento a un costruttore, non una stringa. Quindi è necessario rimuovere le virgolette da Person.

PersonList = Backbone.Collection.extend({ 
    model: Person, 
    url: '/people' 
}); 

Questa è la documentazione per Collection-model.

+0

Perfetto. Grazie – user2736142

+0

Benvenuto, felice di poterti aiutare. – fbynite

Problemi correlati