迭代Backbone.js集合

时间:2013-04-27 15:42:06

标签: javascript backbone.js

我正在通过一个骨干网络应用程序(相当新的骨干网),并在我获取它时需要一些帮助来迭代一个集合。我想要做的是遍历集合中的每个元素,如果progress属性100显示导入的<div>,则显示加载<div>

我对集合中的最后一个元素的工作如下:

fileRepositoryCollection.fetch({

    success: function () {

        if (fileRepositoryCollection.at(fileRepositoryCollection.length - 1).get('progress') === 100) {
            $('#loading').hide();
            $('#imported').show();
        } else {
            $('#loading').show();
            $('#imported').hide();
        }
    }
});

1 个答案:

答案 0 :(得分:1)

您不应该在集合类中呈现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});