javascript - 如何在 Wicket 中重新编码 ajax 行为或阻止请求

标签 javascript ajax wicket

我不想从 AjaxSelfUpdatingTimerBehavior 获取某些 javascript 条件的更新。

WebMarkupContainer messagesWmc = new WebMarkupContainer( "messagesWmc" ) ;
        messagesWmc.setOutputMarkupId( true ) ;
   messagesWmc.add( 
                new   AjaxSelfUpdatingTimerBehavior(Duration.seconds( 5 )) {

                    private static final long serialVersionUID = -103345839370452326L;

                    @Override
                    protected void onPostProcessTarget(AjaxRequestTarget target) {

                        target.appendJavaScript( "restoreMessages();" );

                        super.onPostProcessTarget(target);
                    }
                });

生成这个

Wicket.Event.add(window, "load", function(event) { 
Wicket.Timer.set('messagesId.0', function(){Wicket.Ajax.ajax({"u":"./messages?8-1.0-form-messagesWmc","c":"messagesId"});}, 5000);;
;});

我需要的是

Wicket.Event.add(window, "load", function(event) { 
Wicket.Timer.set('messagesId.0', function(){**if(someCondition)** Wicket.Ajax.ajax({"u":"./messages?8-1.0-form-messagesWmc","c":"messagesId"});}, 5000);;
;});

最佳答案

你可以为你的行为添加一个先决条件:

@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
    super.updateAjaxAttributes(attributes);

    IAjaxCallListener listener = new AjaxCallListener() {
        @Override
        public CharSequence getPrecondition(Component component) {
            return "return someCondition;";
        }
    };
    attributes.getAjaxCallListeners().add(listener);
}

https://ci.apache.org/projects/wicket/guide/8.x/single.html#_ajax_request_attributes_and_call_listeners

关于javascript - 如何在 Wicket 中重新编码 ajax 行为或阻止请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56969083/

相关文章:

java - 何时可以在 Wicket Ajax TabbedPanel 中使用 getString()?

javascript - 检查 JavaScript 中是否存在关联数组

javascript - Zing Feed 在一张图表中绘制多个系列

php - 如果 3 个 Ajax 返回中只有 2 个是 Json,则 JQuery 不起作用

java - 带有 session 的 Wicket RestartResponseException

java - Wicket 中关闭网页时调用的方法?

javascript - 瓦丁 : How to trigger change events by javascript?

javascript - 如何在 Angular Directive(指令)中获取当前dom元素

javascript - 每次调用我的函数时,我都想打印 Next Day 的名称

php - Laravel 5.5 在多次尝试后在 ajax 调用上不断收到 419 post 错误