1

我已经在一个文件中定义的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; 
}); 

我我刚开遗漏的类型错误:未定义不在行的功能错误:

var jsondata = new Classroom(); 

有人可以指出我哪里错了吗?

+0

你的代码中没有明显的错误。如果您需要帮助,我们需要更多关于您的错误的信息。什么函数是未定义的?我猜这不是'课堂'。那它是什么? – 2014-09-02 21:28:25

回答

2

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

+0

我在启动我的模型时得到'TypeError:this.set不是一个函数',并且找不到原因。原来一个相当长的关系链中的最后一个模型没有扩展Backbone.RelationalModel。 * Pewt!*这让我从很多绝望的调试中解脱出来。 – dotmartin 2016-11-01 12:26:08

相关问题