1

在某些事件之后,我需要重新渲染图像(Ext.Image )。我找到doComponentLayout了功能,但不幸的是它对我不起作用。

如何重新渲染作为表单项的图像?

4

3 回答 3

3

有一种常见的技术可以?在图像的 src 和 src 处添加随机字符串。服务器忽略这部分 src 但浏览器认为您正在设置新的 src。

var originalSrc = 'http://example.com/someimg.png';
var antiCachePart = (new Date()).getTime();
var newSrc = originalSrc + '?dc=' + antiCachePart;
// now newSrc is equal to something like "http://example.com/someimg.png?dc=1352748617627"
img.setSrc(newSrc);
于 2012-11-12T19:33:54.323 回答
2

在 Ext.Img 的文档中说:

var changingImage = Ext.create('Ext.Img', {
    src: 'http://www.sencha.com/img/20110215-feat-html5.png',
    renderTo: Ext.getBody()
});

// change the src of the image programmatically
changingImage.setSrc('http://www.sencha.com/img/20110215-feat-perf.png');
于 2012-11-12T18:45:19.133 回答
0

我以前从未使用过 Ext.Image,但一般来说,当我们需要重新渲染图像时,我们会做以下两件事之一:销毁并重新创建组件,或者将图像放入 DataView 或其他模板驱动的组件中并重新渲染模板。

doComponentLayout我相信只应用大小,它不会重新生成组件。如果您不能将图像放入 XTemplate 驱动的组件中,那么销毁并重新创建该组件可能是最好的选择。

于 2012-11-11T18:43:37.397 回答