关于思维导图和素数表中的选择事件的一个小问题。
这是我的组件
<h:form>
<prime:mindmap value="#{artifactSelectionBackingBean.root}"
style="width:100%;height:600px;border:1px solid black;"
rendered="#{artifactSelectionBackingBean.visibleMindmap}">
<prime:ajax event="select"
listener="#{artifactSelectionBackingBean.onNodeSelect}" />
<prime:ajax event="dblselect"
listener="#{artifactSelectionBackingBean.onNodeDblselect}"
update="output" oncomplete="details.show()" />
</prime:mindmap>
<prime:dialog widgetVar="details" header="Node Details"
resizable="true" modal="true" showEffect="fade" hideEffect="fade">
<h:outputText id="output"
value="#{artifactSelectionBackingBean.selectedNode.data}" />
</prime:dialog>
</h:form>
现在,其他方法完全从展示案例(http://www.primefaces.org/showcase/ui/mindmap.jsf)中复制/粘贴。行为是思维导图呈现(具有正确的根和启动配置),但是,“select”事件不执行任何操作,“double select”返回空框。我究竟做错了什么?这毕竟是直接从展示案例中复制的......
另外,我使用的是primefaces 3.5。任何帮助表示赞赏!!!
P.S。我知道我添加了一个渲染属性,但它是“真实的”,因为我正确设置它并且思维导图在开始时正确渲染。
答案 0 :(得分:0)
OK!我终于找到了答案,因为我正在通过各种思维导图/主要表面相关问题浏览stackoverflow,并拼命尝试应用任何解决方案。
显然,ManagedBean / Named bean(如果使用CDI)必须是@SessionScoped而不是@RequestScoped(默认情况下)。如果它是@RequestScoped你会得到特殊的行为,并且某些事件(在我的情况下是“select”事件)不会触发。
我不知道这是一个错误还是在文档中被小心省略。但是,有人应该明确记录它!