1

我正在使用 Backbone-Relational,我收到以下错误:

Uncaught TypeError: Cannot read property 'idAttribute' of undefined

当我访问show_note路线时。

App.Router = Backbone.Router.extend({
  routes: {
    'note/:_id': 'show_note'
  },

  show_note: function(_id) {
    console.log('this is the show_note route for _id: ' + _id);
    var note = new App.Models.Note.findOrCreate({ _id: _id });
    var note_view = new App.Views.main_note({ model: note });
    note.fetch();
  }
});

console.log 收到“_id”。但是当我尝试实例化时var note,我收到了错误。我该如何解决?

编辑 1

添加 Note 模型:

App.Models.Note = Backbone.RelationalModel.extend({
  urlRoot: '/notes',
  idAttribute: '_id',
  relations: [{
    type: Backbone.HasMany,
    key: 'tags',
    relatedModel: 'App.Models.Tag',
    reverseRelation: {
      key: 'note',
      includeInJSON: '_id'
    }
  }]
});

编辑 2

添加了堆栈跟踪

在此处输入图像描述

4

1 回答 1

0

我通过删除解决了这个问题findOrCreate(),并最终像这样检索模型数据:

App.Router = Backbone.Router.extend({
  routes: {
    'note/:_id': 'show_note'
  },

  show_note: function(_id) {
    var note = new App.Models.Note({ _id: _id });
    note.fetch({
      success: function(data) {
        var mainNoteView = new App.Views.main_note({ model: note });
        $('#mainNote').append( mainNoteView.render().el );
      },
      error: function(err) {
        console.log(err);
      }
    });
  }
});
于 2013-07-02T15:58:52.960 回答