Obtener el valor de la etiqueta para un leafNode en una barra de herramientas
-
20-12-2019 - |
Pregunta
He creado una barra de herramientas con varios basicLeafNodes.En algunos JS en la propiedad de estilo, me gustaría obtener el valor de la etiqueta para basicLeafNode.Probé this.label pero arroja un error.Si pudiera obtener el valor de la etiqueta, podría escribir un bloque de código muy generalizado que sería el mismo para cada hoja de la barra de herramientas.Lo cual sería más fácil de mantener y ampliar.Esto está muy lejos de ser un obstáculo, pero sería genial,
Solución
No puedes hacer eso, porque this
representa el objeto de la barra de herramientas, no el nodo hoja (es todo un objeto gigante).
Sin embargo, podrías utilizar repeatTreeNode
y algo de magia de Javascript (o preferiblemente un bean administrado), todos los valores se pueden calcular y la administración podría ser más fácil en el futuro.
<xe:toolbar id="toolbar1">
<xe:this.treeNodes>
<xe:repeatTreeNode var="item">
<xe:this.value><![CDATA[#{javascript:
[{
"label": "Open",
"href": "http://www.openntf.org"
},
{
"label": "Search",
"href": "http://www.google.com"
}]
}]]></xe:this.value>
<xe:this.children>
<xe:basicLeafNode href="#{item.href}" label="#{item.label}">
<xe:this.style><![CDATA[#{javascript:"color:"+(item.label=="Open"?"blue":"red")}]]></xe:this.style>
</xe:basicLeafNode>
</xe:this.children>
</xe:repeatTreeNode>
</xe:this.treeNodes>
</xe:toolbar>
Espero que esto ayude...