所以,我想添加一个特定的组件(Checkbox或Textbox),具体取决于我当前节点的AttType字段。我的zul文件如下所示:
<tree id="permissionTree" width="100%"
model="@bind(vm.treeModel)" style="text-align:left;">
<treecols>
<treecol label="Item" width="400px" />
<treecol label="Wert" />
</treecols>
<template name="model" var="node">
<treeitem>
<treerow>
<treecell label="@load(node.data.name)" />
<treecell> HERE COMPONENT DEPENDING ON node.data.AttType </treecell>
</treerow>
</treeitem>
</template>
</tree>
我怎样才能做到这一点?哦,我希望Textbox / Checkbox值作为String绑定到我的模型,这将是非常好的。
感谢您的任何建议。
编辑:我为自己做了一点“解决方法”。由于我只有3种可能的输入类型,我只是将它们定义为硬编码:
<tree id="permissionTree" width="100%"
model="@bind(vm.treeModel)" style="text-align:left;">
<treecols>
<treecol label="Item" />
<treecol label="Wert" />
</treecols>
<template name="model" var="node">
<treeitem open="@bind(node.open)" onClick="@command('expandNode', item=node)">
<treerow>
<treecell label="@load(node.data.name)" />
<treecell>
<textbox visible="@load(node.data.isTextbox)" value="@bind(node.data.value)" />
<textbox visible="@load(node.data.isTextarea)" rows="6" width="300px" value="@bind(node.data.value)" />
<checkbox visible="@load(node.data.isCheckbox)" checked="@bind(node.data.checkboxValue)" />
</treecell>
</treerow>
</treeitem>
</template>
</tree>
在TreeNode的构造函数中,我根据类型设置了isTextbox / isTextarea / isCheckbox值。这样模型绑定仍然有效:)
答案 0 :(得分:0)
正如您在上一个问题中提到的:使用treeitem渲染器并添加您需要的项目。我认为绑定不适用于新组件。