即使已经创建了模型,主干集合也不包含任何模型

时间:2014-07-14 02:56:44

标签: backbone.js

我真的很困惑关于骨干中的收藏和模型的事情。由于我学习骨干,我还没有完全理解它。我正在研究一个用分支逻辑显示问题的骨干项目;出现的下一个问题是基于当前问题的答案。我创建了一个集合和模型,用于存储(如果这是正确的术语)响应,然后在单独的视图(电子邮件表单视图)中检索该响应,并将这些响应添加到消息框中。这是我收集的回复。

App.Collections.ResponseCollection = Backbone.Collection.extend({
    model: App.Models.ResponseModel
});

这是模型:

App.Models.ResponseModel = Backbone.Model.extend({
    idAttribute: "_id",

    defaults: {
        response: '',
        answer: ''
    }
});

是这样创建的:

saveResponse: function (qModel, option) {
    var qid = qModel.get('question_id');


        var mod = this.response.find(function (model1) {
            return model1.get('_id') == qModel.get('question_id');
        });

        if (typeof (mod) == "undefined") {

            var responseModel = new App.Models.ResponseModel({
                _id: qModel.get('question_id'),
                response: qModel.get('question'),
                answer: option
            });

            this.response.add(responseModel);
        }
        else {
            mod.set('answer', option);
        }

},

在显示问题的视图中,我实例化了模型并添加了响应,然后将其添加到集合中。这很好 - 将响应添加到模型中,并将其添加到集合中。现在,我想检索此集合并从每个模型中获取响应,以便在textarea中添加它。所以,这就是我在电子邮件视图中所做的..

var options = new App.Collections.ResponseCollection();

但是当我在控制台中打印这个集合时,这就是我所看到的 - 集合中没有模型

child {length: 0, models: Array[0], _byId: Object, constructor: function, model: function…}

不会从数据库中保存和检索这些数据。这些响应将添加到模型中,以便稍后检索它以添加到电子邮件表单中。

我很困惑为什么它没有向我展示集合中的任何模型

0 个答案:

没有答案