ZK:动态设置页面标题

时间:2018-01-29 15:54:26

标签: zk

我正在使用MVVM,而我正试图根据显示的内容动态设置页面标题。当我尝试将标题更改为固定字符串时,它可以工作:

<?page title="My title"?>

但是,如果我尝试将其更改为viewmodel中的值,则会失败(标题为空):

<?page title=${vm.titleProperty} ?>

我还尝试使用@init进行数据绑定:

<?page title=@init(vm.titleProperty) ?>

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。在viewmodel(java)中,您可以使用此代码来设置页面标题:

Executions.getCurrent().getDesktop().getFirstPage().setTitle("Dynamic title");

答案 1 :(得分:1)

这样可行,你可以考虑所有这些方法来访问VM中的页面对象:

@Command
myCommand(@ContextParam(ContextType.PAGE) Page page){...

Executions.getCurrent().getDesktop().getFirstPage()

myCommand(@ContextParam(ContextType.DESKTOP) Desktop desktop )
...
desktop.getFirstPage()

所有这些都可以让您访问虚拟机中的页面。

或者更好的是,您可以注册客户端命令,并在触发客户端命令时在客户端上执行页面更改。这稍微复杂一些,但是遵循mvvm模式会更好,因为视图与VM完全分离。这里的例子: http://zkfiddle.org/sample/3nmad2u/2-page-title-mvvm