2015-11-09 6 views
1

Я работаю над проектом, используя zk framework. У меня есть много пользователей, которые могут использовать приложение одновременно.Zk Notify multiple view

Если один из них изменил значение поля и запустил @notifychange Я хочу обновить мнения всех других пользователей.

Например, если все пользователи находятся в одной и той же странице

<window title="Search" width="600px" border="normal" 
apply="org.zkoss.bind.BindComposer" 
viewModel="@id('vm') @init('demo.getting_started.mvvm.SearchViewModel')" 
binder="@id('b') @init('demo.getting_started.mvvm.AnnotateBinderExt',queueName='myqueue',queueScope='session')"> 
<hbox align="center"> 
    Keyword: 
    <textbox id="txt" value="@bind(vm.keyword)" /> 
    Result: 
    <textbox value="@load(vm.keyword)" /> 
</hbox></window> 

и один из них изменить значение текстового поля, которое я хочу обновить значение метки для других пользователей.

Я пытаюсь работать с eventQueue, но не смог реализовать его.

ответ

2

Ваш почти там.

Причина, по которой она не изменяется, заключается в том, что @notifychange можно вызвать из Command вместо GlobalCommand.

Посмотрите на this small talk what I wrote.

@Command всегда тот же ViewModel, @GlobalCommand может обратиться к другим ViewModels в объеме вяжущего.