2016-07-05 7 views
0

Ich bin auf der Suche nach einer Möglichkeit, ein Feld an einen Aggregatwert zu binden, basierend auf dem Wert in einem anderen Attribut. Ich weiß, dass es mehrere andere Möglichkeiten gibt, dies zu tun, aber wenn ich das schaffen kann, wird es wesentlich besser sein als meine Alternativen.XML Berechneter Bindungspfad

Das ist, was ich bisher habe, Ausdruck mit Bindung:

<Text text="{= ${path:'/ProjectStatus(${key})/status'} }"/> 

Zweck: Binden Sie an das ProjectStatus Objekt, das das Schlüsselattribut des aktuellen Objekts entspricht, und das Status-Attribut aus, dass bekommen.

Vielen Dank im Voraus!

Antwort

1

Sorry, das wird nicht funktionieren. Zu diesem Zweck können Sie die Ausdrucksbindung nicht verwenden. Ausdrucksbindung ist ziemlich mächtig, aber für die Formatierung und etwas Mathe gedacht, nicht zum Definieren von Bindungen.

Es wäre auch nicht ratsam, es auf diese Weise zu lösen. Wenn Sie einen Schlüssel für und eine Entität erstellen möchten, sollten Sie immer die Methode createKey Ihres ODataModel verwenden, um sicherzustellen, dass der Schlüssel der Syntax des Eigenschaftstyps entspricht. Zum Beispiel: /ProjectStatus('ABC') für einen Schlüssel des Typs String oder /ProjectStatus(123) für einen Schlüssel des Typs Int.

Am besten erhalten Sie Ihren Controller, um eine bindElement auf dem Text Steuerelement durchzuführen. Etwas ähnliches wie folgt aus:

this.getView().byId("TextId").bindElement(
    oModel.createKey("/ProjectStatus", { Id: sKey }) 
); 

Danach können Sie nur <Text text="{status}" /> den Status des Projekts zu zeigen, verwenden könnte.