Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 遍历Backbone.js集合_Javascript_Backbone.js - Fatal编程技术网

Javascript 遍历Backbone.js集合

Javascript 遍历Backbone.js集合,javascript,backbone.js,Javascript,Backbone.js,我正在开发一个主干网web应用程序(对于主干网来说是个新手),在获取集合时需要一些迭代的帮助。我要做的是循环集合中的每个元素,如果progress属性为100则显示导入的,否则显示加载 我对集合中的最后一个元素进行了如下操作: fileRepositoryCollection.fetch({ success: function () { if (fileRepositoryCollection.at(fileRepositoryCollection.length -

我正在开发一个主干网web应用程序(对于主干网来说是个新手),在获取集合时需要一些迭代的帮助。我要做的是循环集合中的每个元素,如果
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元素中保留两个不同的图像(导入和加载),如下所示:,不幸的是,目前我尝试过的代码,而您建议的代码现在只处理集合中的最后一个元素。。。