アプリケーション内でバックボーン リレーショナルを実装しようとすると問題が発生します。
RelationalModel をフェッチしようとすると、このエラーが発生します: Uncaught TypeError: Cannot read property 'id' of null
これがモジュールです
App.Models.Story = Backbone.RelationalModel.extend({
urlRoot: '/rest/v1/story/',
url:function(){
if (this.isNew()) {
return this.urlRoot;
} else {
return this.urlRoot + this.id + "/";
}
},
idAttribute: 'id',
relations: [{
type: Backbone.HasMany,
key: 'pieces',
createModels: true,
relatedModel: 'App.Models.Piece',
collectionType: 'App.Collections.Pieces',
includeInJSON: false,
reverseRelation: {
key: 'story'
}
}],
initialize: function(){
this.get('pieces').url = _.bind(function(){
return this.url() + "piece/"
}, this);
console.log("hello from story model");
}
});
これがコレクションです
App.Collections.Stories = Backbone.Collection.extend({
url:'/rest/v1/story/',
model: App.Models.Story
});
このようにAPIからデータを取得します
get all stories : GET /rest/v1/story/
get story no' 10 : GET /rest/v1/story/10/
get story pieces : GET /rest/v1/story/10/piece/
get piece no' 612 : GET /rest/v1/piece/612/
今私がやろうとすると
var story = App.Models.Story({id:10});
story.fetch()
次のエラーが表示されます: Uncaught TypeError: null のプロパティ 'id' を読み取れません
オブジェクト自体は、応答された Json を介して正常に作成されました。
このエラーにより、RelationalModel が関係をセットアップできなくなります。
ありがとう。