熟悉mixin生命周期的人可以告诉我:
(使用挂毯 5.3.6)
我有一个从'afterRender'触发一些javascript的mixin。我在“afterRender”中执行此操作,因为我需要初始化该字段的 clientId。
如果它附加到的字段在第一次呈现页面时呈现,它会很好用,但是如果它作为区域更新/xhr 请求的一部分呈现,则脚本永远不会发送到客户端。
我已经为 JavaScriptCallback 设置了断点,虽然它已成功添加到 ajaxResponseRenderer,但它从未被调用过。
谢谢你的建议!
代码例如:
public class MyMixin
{
...
void afterRender()
{
addScript("MyMixin.create('%s', '%s');", field.getClientId(), myVariable);
}
private void addScript(final String format, final Object... args)
{
if (!request.isXHR())
{
jsSupport.addScript(InitializationPriority.NORMAL, format, args);
return;
}
ajaxResponseRenderer.addCallback(new JavaScriptCallback()
{
@Override
public void run(JavaScriptSupport javascriptSupport)
{
javascriptSupport.addScript(InitializationPriority.NORMAL, format, args);
}
});
}
}