Мне нужно повторно отобразить изображение (Ext.Image) после некоторых событий. Я нашел функцию doComponentLayout
, но она у меня, к сожалению, не сработала.
Как я могу повторно отобразить изображение, которое является элементом формы?
Мне нужно повторно отобразить изображение (Ext.Image) после некоторых событий. Я нашел функцию doComponentLayout
, но она у меня, к сожалению, не сработала.
Как я могу повторно отобразить изображение, которое является элементом формы?
Существует распространенный метод добавления ?
и случайной строки в исходный код изображения. Сервер игнорирует эту часть 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);
src
, это можно сделать, установив тот же URL-адрес. img.setSrc(img.src);
достаточно.
- person talha06; 13.11.2012
В документации 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');
src
, это можно сделать, установив тот же URL-адрес. img.setSrc(img.src);
достаточно.
- person talha06; 13.11.2012
Я никогда раньше не работал с Ext.Image, но обычно, когда нам нужно перерендерить изображение, мы делаем одно из двух: уничтожаем и воссоздаем компонент или помещаем изображение внутрь DataView или другого компонента, управляемого шаблоном. и перерисовать шаблон.
Я полагаю, что doComponentLayout
применяет только размер, он не будет регенерировать компонент. Если вы не можете поместить изображение внутрь компонента, управляемого XTemplate, то уничтожение и воссоздание компонента, вероятно, будет лучшим вариантом.