ZK - org.zkoss.util.IllegalSyntaxException: 只允许一串@command

ZK - org.zkoss.util.IllegalSyntaxException: only allow one string of @command

我有以下zul

<?xml version="1.0" encoding="UTF-8"?>
<zk>
    <window apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('MyViewModel')"> 
        <button onClick="@command('myCommand', value='myValue')" />
    </window>
</zk>

带有一个按钮,它在视图模型中调用一个 command,传递一个名为 value

的参数

页面returns出现以下错误:

org.zkoss.util.IllegalSyntaxException: only allow one string of @command,but contains ['myCommand', 'myValue'

ZK版本:7.0.4

问题是传递给命令的参数名称。 value@command 表达式的保留字。

所以这里的解决方案是将参数名称从 value 重命名为其他名称

编辑:

@Subodh Joshi 发现 article 其中指出 value 是保留字

请看下面的代码,请从参数中删除 '' 它会起作用

<button label="MyButton" onClick="@command('myCommand', somevalue=myValue)"/>

以下是文档中的一些示例

<button label="Save" onClick="@command('saveOrder')" />

<button label="Delete" onClick="@command(empty vm.selected.id?'deleteOrder':'confirmDelete')" />

<button label="Index" onClick="@command('showIndex', index=10, keyword='myKeyword')"/>

您可以找到更多信息

Notice that value is a reserved word, you should avoid to use it as an arbitraryKey.

books.zkoss.org/zk-mvvm-book/8.0/syntax/databindingcommand.html