Javascript 遍历Backbone.js集合
我正在开发一个主干网web应用程序(对于主干网来说是个新手),在获取集合时需要一些迭代的帮助。我要做的是循环集合中的每个元素,如果Javascript 遍历Backbone.js集合,javascript,backbone.js,Javascript,Backbone.js,我正在开发一个主干网web应用程序(对于主干网来说是个新手),在获取集合时需要一些迭代的帮助。我要做的是循环集合中的每个元素,如果progress属性为100则显示导入的,否则显示加载 我对集合中的最后一个元素进行了如下操作: fileRepositoryCollection.fetch({ success: function () { if (fileRepositoryCollection.at(fileRepositoryCollection.length -
progress
属性为100
则显示导入的
,否则显示加载
我对集合中的最后一个元素进行了如下操作:
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方法。Thansks为此-我现在已经将相关代码带回了render方法,我使用一个表结构,根据进度===100还是<100显示图像,因此我必须在一个td元素中保留两个不同的图像(导入和加载),如下所示:,不幸的是,目前我尝试过的代码,而您建议的代码现在只处理集合中的最后一个元素。。。