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!')"); работает просто отлично...
Спасибо за ваш отзыв!