1

我正在尝试使用带有通过 Executions.createComponents 传递的参数的条件@command,这是我的 java 代码:

Map data = new HashMap();
data.put("isFromHere", true);
modal = (Window) Executions.createComponents("root/to/window", null, data);
modal.doModal();

在我的 zul 页面中,我正在尝试这样做:

<button label="Save" onClick="@command(arg.isFromHere ? 'save' : 'not')" />

但是每次 arg.isFromHere 都返回 false,就像没有传递参数一样。但如果我这样做:

<button if="${arg.isFromHere}" label="Save" onClick="@command('save'" />

这确实很好用!什么意味着参数正在进入 zul 页面,但不适用于条件命令,有没有办法让它工作?

4

1 回答 1

0

这与活页夹的生命周期有关。
@Command并且${arg.xxx}处于不同的生命周期。

阅读本文档并在其中查看您的解决方案。

为您解决方案:

虚拟机:

private boolean fromHere;

@Init
public void init(@ExecutionArgParam("isFromHere") boolean fromHere){
    this.fromHere = fromHere;
}

public boolean isFromHere() {
    return fromHere;
}

祖尔:

<button label="Save" onClick="@command(vm.fromHere ? 'save' : 'not')" />
于 2014-06-21T20:22:18.780 回答