【问题标题】:Backbone Relational - Uncaught TypeError: undefined is not a function骨干关系 - 未捕获的类型错误:未定义不是函数
【发布时间】:2014-10-26 21:41:51
【问题描述】:

我在文件中定义了一个 BackboneRelational 模型:

define(function (require) {
var Backbone = require('backbone'),
    BackboneRelational = require('backbone.relational'),
    StudentDetails = require('./StudentDetails');

var Classroom = Backbone.RelationalModel.extend({
    url : "../server/student-records.json",
    relations : [{
        type: Backbone.HasMany,
        key: 'studentDetails',
        relatedModel: StudentDetails,
        collectionType: Backbone.Collection,
        fetchRelated: false
    }]
});

return Classroom;
});

我在另一个文件中使用这个模型,如下所示:

define(function(require) {
    var Marionette = require('marionette'),
        Classroom = require('../model/Classroom');

    var ClassroomController = Marionette.Controller.extend({
        initialize: function(args){
            this.mainRegion = args;

            var jsondata = new Classroom();

            jsondata.fetch({
                success:function(){
                    console.log(jsondata);
                    ......................
                    ....some code here....
                    ......................
                }
            });
        }
    });
    return ClassroomController;
});

我刚开始Uncaught TypeError: undefined is not a function 行错误:

var jsondata = new Classroom();

谁能指出我哪里出错了?

【问题讨论】:

  • 您的代码中没有明显的错误。如果您需要帮助,我们需要有关您的错误的更多信息。什么函数未定义?我猜这不是Classroom。那是什么?

标签: javascript backbone.js undefined marionette backbone-relational


【解决方案1】:

这可能是因为您没有为关系中使用的每个模型指定 RelationalModel 的扩展。一旦在关系中使用模型,您实际上必须通过 RelationalModel 扩展它。希望有帮助

【讨论】:

  • 我在启动我的模型时收到TypeError: this.set is not a function,但找不到原因。事实证明,相当长的关系链中的最后一个模型没有扩展 Backbone.RelationalModel。 Pewt! 这让我免于大量绝望的调试。
猜你喜欢
  • 2013-08-04
  • 2015-03-14
  • 2014-12-13
  • 2014-08-11
相关资源
最近更新 更多