我认为这是一个简单的问题。它是基于这个问题。
Filter and sort backbone collection with array of ids
router.on('route:reportCollection', function(assetid) {
var asset = assets.get(assetid);
var reportpointers = asset.get('reportsid');
var filteredReportCollection = new dilzeemQ.Collections.FilteredReportCollection({
});
ohhyearh = filteredReportCollection.filterById(reportpointers);
var reportCollectionView = new dilzeemQ.Views.ReportCollection({
collection: ohhyearh
});
console.log(ohhyearh);
console.log(reports);
$('#pagecontent').html(reportCollectionView.render().$el);
});
除了传递collection : ohhyearh
ohhyearh
就像这样[child,child]
,我认为它正在期待这个{child,child}
答案 0 :(得分:1)
在您将ohhyearh
传递给视图时,它应该是instanceof Backbone.Collection
。这就是视图所期望的,而不是具有每个子项的属性的数组或对象。
根据代码段中的代码,我会说你的filterById
函数可能正在做一些意想不到的事情并且没有返回实际的集合。您可以将其修改为return new dilzeemQ.Collections.FilteredReportCollection(models)
,也可以保留原样,并在将新集合传递给视图时创建新集合:
collection: new dilzeemQ.Collections.FilteredReportCollection(ohhyearh)
这假设您的ohhyearh
对象是一个带有Backbone.Model实例的数组。您可以将一组模型传递给集合构造函数以获取这些模型的集合。