Backbone.js视图img加载



我正在与backbone.js作斗争。我对js很陌生,习惯了as3更面向对象的

我试着制作一个有骨气的简单图片库。我加载了100张图片,如果加载了,我希望它们能淡入。

我的AppView中有这个。对于我得到的每个图像url,我创建一个PhotoView

var view = new PhotoView({model: photo, list:this.imageList});
this.imageList.append(view.render().el);

在Photoview中,我使用以下代码将onload()附加到img标签上(在此处找到):

render: function() {
    var self = this;
    this.$el.append(some_html_with_img_elements);
    this.$el.find('img').on('load', function() { self.img_loaded() });
    return this;
}

问题是,在img_loaded()中,我一次又一次地得到相同的视图(最后一个视图)。任何人都知道如何保持对右视图的引用

this作为参数传递给img_loaded,这样您就可以获得对刚刚加载的图像的引用,并根据需要对其进行操作。

由于您没有发布img_loaded函数的代码,我不确定您是试图在加载每个函数时一次将它们淡入一个(传入图像引用后,这是一个简单的作业),还是等到它们全部加载后再一次将其全部淡入(需要一些额外的代码)。

您可以像这样将视图的引用传递给回调函数。

var me = this;
me.$el.find("img").on("load", { me: me }, function (event) { event.data.me.img_loaded(); });

最新更新