Rufen Sie den Beschriftungswert für einen leafNode in einer ToolBar ab
-
20-12-2019 - |
Frage
Ich habe eine ToolBar mit einer Reihe von BasicLeafNodes erstellt.In einigen JS möchte ich in der Style-Eigenschaft den Label-Wert für den basicLeafNode erhalten.Ich habe this.label ausprobiert, aber das löst einen Fehler aus.Wenn ich den Beschriftungswert erhalten könnte, könnte ich einen sehr allgemeinen Codeblock schreiben, der für jedes Blatt in der Symbolleiste gleich wäre.Das wäre einfacher zu warten und zu erweitern.Das ist alles andere als ein echter Hingucker, aber es wäre nett,
Lösung
Das kannst du nicht machen, weil this
stellt das Symbolleistenobjekt dar, nicht den Blattknoten (es ist alles ein riesiges Objekt).
Sie könnten jedoch verwenden repeatTreeNode
und etwas Javascript-Magie (oder vorzugsweise eine verwaltete Bean) können alle Werte berechnet werden und die Verwaltung könnte in Zukunft einfacher sein.
<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>
Ich hoffe das hilft...