调用require(javascript)的ajaxResponseRenderer.addCallback永远不会从tapestry 5.4.0的ajax调用中执行,但是在5.3.8下工作正常

时间:2016-02-01 09:52:16

标签: tapestry addcallback

我想使用javascriptcallback更新javascript函数的输入。当从onAjaxEvent调用触发时,推送到客户端的addInput.js脚本中的javascript代码不会被执行,但是从afterRender调用时工作正常。

代码如下:

public void onAjaxEvent(final String input) {
  ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
    public void run(JavaScriptSupport jss_) {
      addInput(jss_, input);/* javascript never gets executed */
    }
  });
}
protected void addInput(JavaScriptSupport jss_, String input) {
  JSONObject config = new JSONObject();
  config = new JSONObject();
  config.put("arg", input);
  jss_.require("addInput").invoke("publicFunc").with(config);/* publicFunc never gets executed when called from onAjaxEvent but works fine when called from afterRender */
}
void afterRender() {
  JSONObject config = new JSONObject();
  javaScriptSupport.require("mainScript").with(config);
  addInput(javaScriptSupport, "this call works fine");
}

addCallback-construct基于Tapestry 5.4 call jquery more than once

我在java1.7上使用tapestry5-jquery 4.0.0和tapestry5.4.0。这个问题似乎是特定于tapestry 5.4.0的,因为addInput是一个简单的addScript(“alert('it works!')”);工作得很好......

感谢您的反馈!

0 个答案:

没有答案