1

简单的问题,但我还没有找到可能的解决方案:

我在 Sencha Touch 中有一个列表,其中包含通过该itemTpl属性生成的项目。现在我想浏览 DOM 中的项目(在它们被渲染之后!)并替换它们的图像(使用 imgCache 进行设备上的图像缓存)

List的Painted事件没有帮助,因为它是在渲染 Item-DOM 之前触发的。

编辑:我目前的解决方案是覆盖的内部updateListItem方法,在那里Ext.dataview.List调用原始方法updateListItem并在那里添加我的附加功能。仍在寻找更好的解决方案...

4

1 回答 1

1

列表关联商店的load事件就是您要查找的内容。

[编辑]

正如您在评论中指出的那样,load不能保证在项目实际呈现后引发事件。

我认为您的方法是正确的,但不是在适当的位置添加功能,为什么不在覆盖方法的末尾触发自定义事件,传递列表项本身,以便您可以在列表中侦听该事件?

就像是:

updateListItem: function(item, index, info) {

    // function body ...

    me.fireEvent('listitemupdate', [item, index]);

}

这应该使您的代码更加干净和可重用。

于 2014-04-07T13:14:12.650 回答