2017-10-03 4 views
0

History API와 함께 Wicket 7.x를 사용하고 있습니다. 현재 "onpopstate"에 대해 AjaxEventBehavior를 연결하려고합니다. 내가 history.pushState 할 때마다 객체를 추가하는 코드가 있는데, 내 문제는 Java 측에서 onEvent를 사용하여이 추가 정보에 액세스 할 수 없다는 것입니다.History API가있는 Wick AjaxEventBehavior

샘플 pushState :

target.appendJavaScript("history.pushState({query: '" + 
searchResults.getQueryString() + "'}, null, window.location.pathname);"); 

EventBehavior :

this.getPage().add(new AjaxEventBehavior("onpopstate") 
{  
    @Override 
    protected void onEvent(AjaxRequestTarget target) 
    { 
     //code to get query defined in pushState 
    } 
}); 

updateAjaxAttributes는 페이지가 렌더링 될 때 만 호출되기 때문에 해결책이 아니다. popstate가 호출 될 때이 여분의 데이터를 보내야합니다.

답변

1

updateAjaxAttributes가 실제로 도움이 될 수 있습니다. AjaxRequestAttributes를 사용하여 동적 추가 속성을 지정할 수도 있습니다 (자세한 내용은 here 참조). 이러한 매개 변수는 AjaxEventBehavior가 트리거되고 요청 매개 변수로 전송되기 전에 클라이언트 측에서 동적으로 계산됩니다.

+0

안녕하세요, 팁 주셔서 감사합니다. 그것은 나를 올바른 길로 인도했습니다! 내가 제안한대로 getDynamicExtraParameters를 사용하고 있습니다. 내가 직면 한 유일한 문제는 추가 매개 변수가 추가 될 때 발생합니다. 정확한 정보를 검색하기에는 이벤트가 너무 일찍 발생합니다. 나중에 실행을 연기 할 수있는 방법이 있습니까? getDynamicExtraParameters에 전달하는 현재 값은 "return { 'query': attrs.event.originalEvent.state.query}"입니다. – Greg

+1

문제점에 대한 해결책을 찾았습니다. History API를 오용했습니다. 위대한 답변 주셔서 감사합니다! – Greg