我返回從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