Backbone.js 主干集合不包含任何模型,即使这些模型已创建
关于主干中的集合和模型,我真的很困惑。由于我在学习主干,我还不能完全理解它。我正在做一个主干项目,用分支逻辑显示问题;出现的下一个问题基于当前问题的答案。我创建了一个集合和模型,用于存储响应(如果这是正确的术语),然后在单独的视图(电子邮件表单视图)中检索响应,并将这些响应添加到消息框中。这是我收集的回应Backbone.js 主干集合不包含任何模型,即使这些模型已创建,backbone.js,Backbone.js,关于主干中的集合和模型,我真的很困惑。由于我在学习主干,我还不能完全理解它。我正在做一个主干项目,用分支逻辑显示问题;出现的下一个问题基于当前问题的答案。我创建了一个集合和模型,用于存储响应(如果这是正确的术语),然后在单独的视图(电子邮件表单视图)中检索响应,并将这些响应添加到消息框中。这是我收集的回应 App.Collections.ResponseCollection = Backbone.Collection.extend({ model: App.Models.Response
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…}
这些数据不会从数据库中保存和检索。将这些响应添加到模型中只是为了稍后检索并添加到电子邮件表单中
我很困惑为什么它没有显示集合中的任何模型您需要将相同的
App.Collections.ResponseCollection
实例从一个视图传递到另一个视图。目前,听起来您正在为该集合创建两个不同的实例。@fbynite它就是这样的。谢谢你的帮助。
child {length: 0, models: Array[0], _byId: Object, constructor: function, model: function…}