Kann ich irgendwie die if-then-else-Konstruktion (ternärer Operator) in anglejs Ausdruck verwenden, zum Beispiel habe ich die Funktion $ scope.isExists (item), die einen bool-Wert zurückgeben muss. Ich möchte so etwas,
<div ng-repeater="item in items">
<div>{{item.description}}</div>
<div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>
Ich weiß, dass ich eine Funktion verwenden kann, die einen String zurückgibt. Ich bin an der Möglichkeit interessiert, die if-then-else-Konstruktion als Ausdruck zu verwenden. Vielen Dank.
ng-switch
Antworten:
Winkelausdrücke unterstützen den ternären Operator vor 1.1.5 nicht, können jedoch folgendermaßen emuliert werden:
Im Beispiel würde so etwas funktionieren:
UPDATE: Angular 1.1.5 hat Unterstützung für ternäre Operatoren hinzugefügt:
quelle
<
und>
als Vergleichsoperatoren?Sie können den ternären Operator seit Version 1.1.5 und höher verwenden, wie in diesem kleinen Plunker gezeigt (Beispiel in 1.1.5):
Aus Gründen der Geschichte (vielleicht wird plnkr.co aus irgendeinem Grund in der Zukunft nicht mehr funktionieren) ist hier der Hauptcode meines Beispiels:
quelle
{{true?true:false}}
Sie können ng-show einfach verwenden wie:
Für komplexere Tests können Sie ng-switch-Anweisungen verwenden:
quelle
Dies kann in einer Zeile erfolgen.
Verwendung in einem
td
Tag:quelle