ZK:在Client.showNotification中显示绑定值

时间:2014-05-23 12:11:05

标签: mvvm zk

我正在使用MVVM aproach处理ZK项目,我试图做的是显示@bind(each.info)值的通知但似乎不适合我,这是我到目前为止所做的。

<div width="59%"  style=" float: left !important;" apply="org.zkoss.bind.BindComposer"
  viewModel="@id('menu') @init('ma.schlemmer.headerbar.mainMenu')">


    <hlayout children="@bind(menu.listMenu)">
            <template name="children">
                     <a  iconSclass="@bind(each.icon)"  href="@bind(each.link)" autag="@bind(each.info)" onRightClick='Clients.showNotification("@bind(each.info)" ,"warning",this.self,"after_center",1000)'></a>
             </template>
     </hlayout>
</div>

谢谢你

1 个答案:

答案 0 :(得分:1)

您可以使用ZK命令执行此操作。你应该得到你想要的结果:

<div width="59%"  style=" float: left !important;" apply="org.zkoss.bind.BindComposer"
    viewModel="@id('menu') @init('ma.schlemmer.headerbar.mainMenu')">


<hlayout children="@bind(menu.listMenu)">
    <template name="children">
        <a  iconSclass="@bind(each.icon)"  href="@bind(each.link)" autag="@bind(each.info)"
            onRightClick="@command('showInfo', obj=each, comp=self)"></a>
         </template>
 </hlayout>

然后将此命令添加到View Model:

@Command
public void showInfo(@BindingParam("obj") ListMenu listMenu, @BindingParam("comp") Component comp) {
    Clients.showNotification(listMenu.getInfo(),"warning",comp,"after_center",1000);
}

你没有提供足够的代码,所以我无法测试确切的情况,但基本上你需要将每个对象(我猜是像ListMenu对象)和组件传递给命令。然后,您可以轻松地显示通知。

祝你好运, Osvaldas