迭代虽然Backbone.js集合
问题描述:
我正在通过骨干网应用程序(对于骨干很新)我的方式工作,并需要一些帮助迭代通过集合,因为我拿它。我想要做的是循环集合中的每个元素,如果progress
属性是100
显示导入的<div>
,否则显示加载<div>
。迭代虽然Backbone.js集合
我有这个工作最后一个元素集合中,如下所示:
fileRepositoryCollection.fetch({
success: function() {
if (fileRepositoryCollection.at(fileRepositoryCollection.length - 1).get('progress') === 100) {
$('#loading').hide();
$('#imported').show();
} else {
$('#loading').show();
$('#imported').hide();
}
}
});
答
在集合类你不应该渲染HTML。你的集合视图应该有一个呈现方法,定义你的集合在html中的样子。然后,您通过视图中的集合进行迭代。
事情是这样的:
var fileRepositoryCollectionView = Backbone.View.extend({
render: function() {
// collection rendering
this.collection.each(function(file) {
if (file.get('progress') === 100) {
$('#loading' + file.get('some_id')).hide();
$('#imported' + file.get('some_id')).show();
} else {
$('#loading' + file.get('some_id')).show();
$('#imported' + file.get('some_id')).hide();
}
});
return this;
},
});
var repView = new fileRepositoryCollectionView({ collection: fileRepositoryCollection});
你也可以单独渲染的一个元素。通常会创建addOne方法。 – 2013-04-27 16:13:34
Thansks的 - 我已经把相关的代码备份到渲染方法现在,即时通讯使用表结构与图像显示取决于进展=== 100或
,遗憾的是目前的代码,我都试过了,你建议的代码只与最后一个元素现在正在收集中... –
user1694873
2013-04-27 16:34:40