Obtenha o valor do rótulo para um leafNode em um toolBar
-
20-12-2019 - |
Pergunta
Eu criei um toolBar com vários basicLeafNodes.Em alguns JS na propriedade style eu gostaria de obter o valor do rótulo para basicLeafNode.Eu tentei this.label mas isso gera um erro.Se eu pudesse obter o valor do rótulo, poderia escrever um bloco de código muito generalizado que seria o mesmo para todas as folhas da barra de ferramentas.O que seria mais fácil de manter e ampliar.Isso está muito longe de ser um obstáculo, mas seria legal,
Solução
Você não pode fazer isso, porque this
representa o objeto da barra de ferramentas, não o nó folha (é tudo um objeto gigante).
No entanto, você pode usar repeatTreeNode
e um pouco de magia Javascript (ou de preferência um bean gerenciado), todos os valores podem ser calculados e o gerenciamento pode ser mais fácil no 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>
Eu espero que isso ajude...