gpt4 book ai didi

mvvm - ZK MVVM : Passing parameter to another viewmodel using

转载 作者:行者123 更新时间:2023-12-03 10:22:44 25 4
gpt4 key购买 nike

我想做的是通过page1.zulpage2.zul将值从<include>传递到viewModel

page1.zul,我有

<include processId="@bind(vm.selectedProcess.id)" src="@load('page2.zul')"></include>

然后它应该传递给 viewModel中的 page2.zul
@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>

最佳答案

首先,为虚拟机的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中所见,它可以工作,但是必须初始化您的参数。

如果要将“实时数据”传递给其他zul(而不是其他viewmodel),则可以使用 @ref或仅使用parentVM。
如果实时数据需要包含在viewmodel本身中,则可以使用不可见的文本框,在该文本框中,您可以从parentVM加载数据,然后在执行某些操作之前将其保存在includeVM中。

在此处查看 updated fiddle

关于mvvm - ZK MVVM : Passing parameter to another viewmodel using <include>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31241415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com