首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ZK :使用<include>将参数传递给另一个视图模型

ZK :使用<include>将参数传递给另一个视图模型
EN

Stack Overflow用户
提问于 2015-07-06 16:48:40
回答 3查看 3.3K关注 0票数 1

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

来自page1.zul的,我有

代码语言:javascript
运行
复制
<include processId="@bind(vm.selectedProcess.id)" src="@load('page2.zul')"></include>

然后,它应该传递给page2.zul中的viewModel

代码语言:javascript
运行
复制
@Init
public void init(@ExecutionArgParam("processId") String processId){
    System.out.println("processInstanceId : " + processId);
}

但是,我总是得到一个空值。你知道怎么做吗?page2.zul看起来像这样:

代码语言:javascript
运行
复制
<div apply="org.zkoss.bind.BindComposer"
    viewModel="@id('vm') @bind('com.mrye.viewModel')">

    <label value="@load(vm.processId)"></label>
</div>
EN

Stack Overflow用户

发布于 2015-07-06 21:36:00

首先,为虚拟机的Id创建可区分的名称。

然后zul:

代码语言:javascript
运行
复制
<div apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('com.mrye.viewModel', processId = parentVM.selectedProcess.id )">

和VM2:

代码语言:javascript
运行
复制
@Init
public void init (@BindingParam("processId") MyObject processID) {

在注释后编辑:

正如您在this fiddle中看到的,它可以工作,但您的参数必须初始化。

如果您希望将“实时数据”传递给其他parentVM (而不是其他视图模型),则可以使用zul或仅使用zul。

如果实时数据需要在视图模型本身中,您可以使用不可见的文本框,在此从parentVM加载数据,并在某个操作发生之前将其保存在includedVM中。

请在此处查看updated fiddle

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31241415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档