在 onAfterRender 中更改 defaultModel
Change defaultModel inside onAfterRender
我在这个Panel
里面有一个Panel
和一个Image
。
在 onAfterRender
中,我想更改 Image
的 defaultModel
。
@Override
protected void onAfterRender() {
super.onAfterRender();
previewImage.setDefaultModel(new Model<String>(newUrl));
}
但是这个没有效果。目的是显示一个 placeholder
并且当 Panel
被渲染时,然后改变它的 src
onAfterRender()
是在呈现当前 Component
之后立即执行的回调,即它已经贡献了发送给浏览器的最终 HTML 的一部分。
不太清楚你想用这个占位符实现什么。
如果您想显示占位符然后延迟加载真实图像,那么您可以使用 wicket-extensions 中的 AjaxLazyLoadPanel
。或者您可以使用 JavaScript 在浏览器加载图像后替换占位符 (img.addEventListener('load', ...)
.
onAfterRender()
通常用于在该组件渲染的 content/body 之后渲染某些内容,但不能用于更改它。
我在这个Panel
里面有一个Panel
和一个Image
。
在 onAfterRender
中,我想更改 Image
的 defaultModel
。
@Override
protected void onAfterRender() {
super.onAfterRender();
previewImage.setDefaultModel(new Model<String>(newUrl));
}
但是这个没有效果。目的是显示一个 placeholder
并且当 Panel
被渲染时,然后改变它的 src
onAfterRender()
是在呈现当前 Component
之后立即执行的回调,即它已经贡献了发送给浏览器的最终 HTML 的一部分。
不太清楚你想用这个占位符实现什么。
如果您想显示占位符然后延迟加载真实图像,那么您可以使用 wicket-extensions 中的 AjaxLazyLoadPanel
。或者您可以使用 JavaScript 在浏览器加载图像后替换占位符 (img.addEventListener('load', ...)
.
onAfterRender()
通常用于在该组件渲染的 content/body 之后渲染某些内容,但不能用于更改它。