我返回从Mongodb数据库返回的对象的集合,并且想要查找返回了多少个模型,并且能够遍历它们并基于它们创建一些DOM元素那。我没有使用Backbone.View,并将使用Famo.us.返回一个Backbone集合并迭代 - 而不是一个视图
我创建一个集合,并把它返回,但我似乎无法访问内部或他们的数据模型 - 知道你是否能帮助:)
这里是型号/系列:
define(function (require, exports, module) {
'use strict';
var Backbone = require('backbone');
var Book = Backbone.Model.extend({
idAttribute: "_id"
});
var BookCollection = Backbone.Collection.extend({
model: Book,
url: "http://localhost:3000/api/books"
});
module.exports = BookCollection;
});
this._bookCollection = new BookCollection();
this._bookCollection.fetch({reset: true});
var _bookCollection = this._bookCollection;
console.log(_bookCollection);
console.log(_bookCollection.length);
的 '执行console.log(_bookCollection)' 将类似的东西返回:
在主文件I使用实例化集合
n {length: 0, models: Array[0], _byId: Object, constructor: function, model: function…}
_byId: Object
length: 250
models: Array[250]
[0 … 99]
[100 … 199]
[200 … 249]
length: 250
__proto__: Array[0]
__proto__: s
所以我知道它返回的东西,因为我期待250'模型'被返回。因为它不是一个真正的数组 - 你不能做_bookCollection.length(它不适合我)。我如何迭代返回的内容,以便获取每个模型,然后使用该模型“做”某些内容?我正在使用Famo.us,所以想创建一个Backbone.View以外的东西。
感谢
- 更新
后 “this._bookCollection.fetch({补充:真});”浏览器显示我有:
{length: 0, models: Array[0], _byId: Object, _events: Object, constructor: function…}_byId: Object_events: Objectlength: 250models: Array[250]__proto__: n
如果你展开它,它会告诉你的长度是250和“模型”(数组[250])有我在寻找,分成[00中的数据。 .99],[100..199]等。
我是在错误地检索集合还是不能真正做到这一点而不创建视图?
谢谢你告诉我关于 '同步'。我可以一次“采摘”多个属性,以便获取每个模型的值吗? – Pandafinity 2014-11-06 15:36:35
我不知道我明白你想要什么。您可以根据需要操作模型:例如,'Collection.toJSON'来获取所有序列化的模型,或者使用代理集合http:// backbonejs上的Underscore方法。org /#Collection-Underscore-Methods – nikoshr 2014-11-06 15:50:07
如果我尝试Collection.toJSON,它会回来empty.I更新问题与我看到的 – Pandafinity 2014-11-06 16:25:17