2013-12-16 11 views
6

ich Backbone.js ich versuche lesen zu lernen, nichtBackbone.js Sammlung holen() throws Uncaught Typeerror: Eigenschaft ‚idAttribute‘ undefinierter

Es hatte es funktioniert ein einziges Modell GET, PUT und DELETE. Aber, wenn ich eine Sammlung erstellen, holen die Methode, um diesen Fehler gibt: Uncaught Typeerror: kann nicht lesen Eigenschaft ‚idAttribute‘ undefinierter (Backbone.js: 683)

Hier ist der Code Ich versuche:

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

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

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

auf Abruf, der Server die folgende JSON zurückgibt, was ich denke, ist richtig:

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

ich benutze jQuery 2.0.3 (auch versucht 1.10.2), Underscore.js 1.5.2 und Backbone .js 1.1.0

Was mache ich falsch?

+0

Zunächst sollte 'model' auf einen Konstruktor und nicht auf eine Zeichenfolge verweisen. Versuchen Sie 'Modell: Person', wenn Sie die' PersonList' erweitern. – fbynite

+0

@fbynite Danke. Ich denke, das hat es behoben. Wenn Sie diese Antwort gemacht haben, würde ich es akzeptieren ... – user2736142

Antwort

10

Wenn Sie eine Backbone.Collection erweitern, sollte model eine Referenz auf einen Konstruktor sein, keine Zeichenfolge. Sie müssen also die Anführungszeichen von Person entfernen.

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

Hier ist die Dokumentation für Collection-model.

+0

Perfekt. Danke – user2736142

+0

Ihre Begrüßung, froh, dass ich helfen konnte. – fbynite

Verwandte Themen