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,

¿Fue útil?

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...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top