Zk 6.5.11CE를 사용합니다.ZK showBusy는 장시간 작동 전에 호출되었지만 이후에 표시됩니다
모달 창에서 클릭 한 버튼이있어서 이메일을 보냈습니다. 그것은 오랜 작업이며, 대기 시간에는 Clients.showBusy를 사용하여 사용자가 모달 창을 클릭/수정하도록 차단하고 싶습니다.
여기 여기 모달 창 getModalWin라고 EventView.java winFather이 승리입니다
@Command
@NotifyChange("*")
public void send() {
Clients.showBusy(winFather.getModalWin(), "Please wait...");
// ... do something ...
sendMail(); // it takes 2/3 seconds
Clients.clearBusy(winFather.getWinEvent());
}
(내 홈 페이지) 자바 년대 ZUL
<window apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('viewmodel.EventView')">
...fill the form...
<button label="SEND" onClick="@command('send')" autodisable="self" />
</window>
()의 수 모덜 윈도우. 쇼 Busy 문제가 있습니다. 희망은 분명하다 :)
그러나 나는 웹을 검색하고있어 뭔가 흥미로운 것을 발견했다 here과 here. 그래서 저는 에코 이벤트를 사용해야합니다. 사람들을 위해
을 클릭하지 않은 링크 :
<window id="w" width="200px" title="Test echoEvent" border="normal">
<attribute name="onLater">
doLongOperation(); //take long to execute
Clients.clearBusy(); //remove the busy message
</attribute>
<button label="Echo Event">
<attribute name="onClick">
Clients.showBusy("Execute..."); //show a busy message to user
Events.echoEvent("onLater", w, null); //echo an event back
</attribute>
</button>
</window>
질문 (들) :
- 아마 문제를 해결할 수있는 유일한 기회가 에코 이벤트를, 또는 나는 showBusy를 만들기 위해 뭔가를 할 것을 잊었다 제대로 작동합니까?
- 내 zul 페이지에서 코드를 정말로 원하지 않으므로 어떻게 내 viewModel에서 내용을 정의 할 수 있습니까?
내가 같은 문제를 가지고
busy = true; // Clients.showBusy(winFather.getModalWin(), "Please wait...");
...
busy = false; // Clients.clearBusy(winFather.getModalWin());
와 바인더 제본 값 내가 보내는 이메일 동안 사용하지 않으려는 모든 구성 요소에
disabled="@load('vm.busy')"
및 대체 클라이언트 showBusy 및 clearBusy으로 할당하는 경우, zul 구성 요소가 비활성화되기 전에 전자 메일이 전송됩니다. 동기화 문제 인 것 같습니다.
안녕하십니까. 그러나 MVVM을 사용하고 있으므로 프로젝트에 내 솔루션을 적용 할 수 없습니다. – barracus
@barracus 안녕하세요, 다시 당신을 위해 내 코드를 변경했습니다.이 새 코드는 MVC 또는 MVVM에 종속되지 않습니다. 이 코드를 테스트했으며 필요한 기능이 정확히 있습니다. –
도움을 주셔서 감사합니다, 잘 작동합니다. 다른 방법이 필요하다면 [이 예제] (https://gist.github.com/dennischen/2766642)에서 비슷한 방법으로 해결할 수 있습니다. – barracus