我不想从 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);
}
关于javascript - 如何在 Wicket 中重新编码 ajax 行为或阻止请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56969083/