【发布时间】:2014-11-06 14:32:08
【问题描述】:
我正在返回一个从 Mongodb 数据库返回的对象集合,并希望找出返回了多少模型,并能够遍历它们并基于它创建一些 DOM 元素。我没有使用 Backbone.View,而是使用 Famo.us。
我创建了一个集合并将其返回,但我似乎无法访问其中的模型或它们的数据 - 想知道您是否可以提供帮助 :)
这是模型/系列:
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)”将返回类似于:
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({add:true});”之后浏览器显示我有:
{length: 0, models: Array[0], _byId: Object, _events: Object, constructor: function…}_byId: Object_events: Objectlength: 250models: Array[250]__proto__: n
如果你展开它,它会告诉你长度是 250,并且在“模型”(Array[250]) 中有我要查找的数据,分为 [00..99]、[100..199]等等
我是在错误地检索集合还是在不创建视图的情况下真的无法做到这一点?
【问题讨论】:
标签: backbone.js backbone.js-collections