【发布时间】:2014-04-26 19:06:42
【问题描述】:
这是场景(简化): 我正在尝试在 ui:repeat 中使用动态 p:menus,如下所示...
<h:form>
<ui:repeat value="#{bloggerBean.listOfModel}" var="categoryModel" varStatus="loop">
<p:commandButton id="dynaButton" type="button"
value="#{categoryModel.category.name}"/>
<p:menu model="#{categoryModel}" overlay="true" trigger="dynaButton"
my="left top" at="left bottom" />
</ui:repeat>
</h:form>
这样,按钮和菜单项可以正确显示,但只有循环中的最后一个 p:menu 操作侦听器正常工作(在托管 bean 处调用)。显然是因为我没有使用 varStatus 作为模型。 如果我将上面的内容更改为使用 varStatus,如下所示,
<h:form>
<ui:repeat value="#{bloggerBean.listOfModel}" var="categoryModel" varStatus="loop">
<p:commandButton id="dynaButton" type="button"
value="#{categoryModel.category.name}"/>
<p:menu model="#{bloggerBean.listOfModel[loop.index]}" overlay="true" trigger="dynaButton"
my="left top" at="left bottom" />
</ui:repeat>
</h:form>
显示按钮和菜单,但是每个 p:menu 中的 menuItems 都是空的。
这类似于 BalusC [此处] (Using <ui:repeat><h:inputText> on a List<String> doesn't update model values) 报告的情况!
知道为什么吗? 谢谢!
【问题讨论】:
-
这是我想要制作的动态面包屑,它允许在任何按钮(带箭头的按钮)上进行动态 p:menu 选择,以便面包屑动态增长或收缩:
标签: jsf primefaces