2013-12-16 20 views
6

の「idAttribute」私はそれはそれは、単一のモデルを、GET、PUTとDELETEに取り組んでいたBACKBONE.JSBACKBONE.JSコレクション(フェッチ)キャッチされない例外TypeError:プロパティを読み取ることができません未定義

を学ぶしようとしています。しかし、私はコレクションを作成する場合、取得方法は、このエラーを与える: キャッチされない例外TypeErrorを:未定義(BACKBONE.JS:683)の「idAttribute」プロパティを読み取ることができません

にここでは、私がしようとしているコードです:

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

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

var personList = new PersonList(); 
personList.fetch(); 
フェッチで

、サーバーは、私が正しいと思い、次のJSON、返却されます。

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

私はjQueryの2.0.3(また、1.10.2を試してみました)、Underscore.js 1.5.2およびバックボーンを使用していますが.js 1.1.0

私は間違って何をしていますか?

+0

まず、 'model'は文字列ではなくコンストラクタを参照する必要があります。 'PersonList'を拡張するときに' model:Person'を試してみてください。 – fbynite

+0

@fbyniteありがとうございます。私はそれを修正したと思います。あなたが答えを出したら、私はそれを受け入れるでしょう... – user2736142

答えて

10

Backbone.Collectionを拡張する場合、modelは文字列ではなく、コンストラクタへの参照にする必要があります。だからPersonから引用符を削除する必要があります。

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

ここにはCollection-modelのドキュメントがあります。

+0

パーフェクト。ありがとうございます – user2736142

+0

私のお手伝いをさせていただきありがとうございます。 – fbynite

関連する問題