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,

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top