Backbone Model中的集合未定义,即使在initialize函数中实例化也是如此

时间:2013-09-06 14:08:17

标签: javascript backbone.js

在下面的Backbone模型中,我有一个嵌套的Backbone集合。

var Student = Backbone.Model.extend({
    firstName: null,
    lastName: null,
    initialize: function() {
        this.programCollection = new ProgramCollection({});
    }
});

var ProgramCollection = Backbone.Collection.extend({ 
    model: Program
});

然而,当尝试将Program对象添加到集合中时......

var testStudent = new Student();
testStudent.get("programCollection").add(new Program());

我收到以下错误:

  

无法获取属性'add'的值:object为null或undefined

显然,由于programCollection未定义,我正在做错事。

提前致谢/ Jesper

1 个答案:

答案 0 :(得分:0)

模型实例的属性直接与attributes属性不同。如果您希望模型实例具有一个集合(不是直接存储在该学生记录中的数据),请将其设置为模型实例属性(正如您所做),然后直接访问它而不调用get

var testStudent = new Student();
testStudent.programCollection.add(new Program());