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,

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top