如何通过id访问macrocomponent中的组件?

时间:2015-04-13 17:30:38

标签: zk

我有一个zul文件( MainPage.zul ),其中包含一个宏组件( configtabs )。 Macrocomponent的zul文件包含另一个宏组件( fieldListBox )。如何在MainPage的Controller类中使用第二个宏组件( fieldListBox )的id?我想在MainPage的cOntroller类的doAfterCompose方法中为第二个宏组件设置模型。

示例代码:

<?component name="configtabs" macro-uri="iam.configtab.zul" ?> 
<zk>
  <window>
    <configtabs />
  </window>
</zk>

configtab.zul

<hbox>
  <fieldListBox id="fieldsbox" />
</hbox>    

1 个答案:

答案 0 :(得分:0)

您可以使用zk选择器。 Click here for a little bit of explanation of what are those selectors.

每个组件has query methods。如果将这些方法与选择器一起使用,则可以查询其他组件中的组件。这对我来说非常有用。 例如,在doAfterCompose上你可以这样做:

configtabs.queryAll("fieldListBox")

或者

configtabs.queryAll("#fieldsbox")

它返回您要设置模型的组件。 我希望它有用。这取决于具体情况。