我Panel
内有Image
和Panel
。
在onAfterRender
我想要更改defaultModel
的{{1}}。
Image
但这没有效果。目的是显示@Override
protected void onAfterRender() {
super.onAfterRender();
previewImage.setDefaultModel(new Model<String>(newUrl));
}
,并在呈现placeholder
时,然后更改其Panel
答案 0 :(得分:1)
onAfterRender()
是在呈现当前Component
之后立即执行的回调,即它已将其最终HTML的一部分贡献给浏览器。
使用此占位符要实现的目标并不十分清楚。
如果您想要显示占位符然后懒洋洋地加载真实图像,那么您可以使用wicket-extensions中的AjaxLazyLoadPanel
。或者,您可以在浏览器加载图像后使用JavaScript替换占位符(img.addEventListener('load', ...)
。
onAfterRender()
通常用于在此Component呈现的内容/正文之后呈现内容,但不能用于更改它。