我想要做的是通过<include>和viewModel将值从page1.zul传递到page2.zul。
来自page1.zul的,我有
<include processId="@bind(vm.selectedProcess.id)" src="@load('page2.zul')"></include>然后,它应该传递给page2.zul中的viewModel
@Init
public void init(@ExecutionArgParam("processId") String processId){
System.out.println("processInstanceId : " + processId);
}但是,我总是得到一个空值。你知道怎么做吗?page2.zul看起来像这样:
<div apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @bind('com.mrye.viewModel')">
<label value="@load(vm.processId)"></label>
</div>发布于 2015-07-06 21:36:00
首先,为虚拟机的Id创建可区分的名称。
然后zul:
<div apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('com.mrye.viewModel', processId = parentVM.selectedProcess.id )">和VM2:
@Init
public void init (@BindingParam("processId") MyObject processID) {在注释后编辑:
正如您在this fiddle中看到的,它可以工作,但您的参数必须初始化。
如果您希望将“实时数据”传递给其他parentVM (而不是其他视图模型),则可以使用zul或仅使用zul。
如果实时数据需要在视图模型本身中,您可以使用不可见的文本框,在此从parentVM加载数据,并在某个操作发生之前将其保存在includedVM中。
请在此处查看updated fiddle。
https://stackoverflow.com/questions/31241415
复制相似问题