ajaxResponseRenderer.addCallback вызов require(javascript) никогда не выполняется из вызова ajax с помощью гобелена 5.4.0, но отлично работает с 5.3.8

Я хочу обновить входные данные для функции javascript, используя javascriptcallback. javascript-код в сценарии addInput.js, который передается клиенту, не выполняется при запуске из вызова onAjaxEvent, но отлично работает при вызове из 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-конструкция основана на вызове Tapestry 5.4 jquery более одного раза

Я использую tapestry5-jquery 4.0.0 и tapestry5.4.0 на java1.7. проблема, кажется, является определенной для гобелена 5.4.0, как та же самая конструкция, где addInput является простым addScript("alert('it works!')"); работает просто отлично...

Спасибо за ваш отзыв!

0 ответов

Другие вопросы по тегам