110

たとえば、ブール値を返さなければならない $scope.isExists(item) 関数があります。私はこのようなものが欲しい、

<div ng-repeater="item in items">
    <div>{{item.description}}</div>
    <div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>

文字列を返す関数を使用できることはわかっています。if-then-else 構造を式に使用する可能性に興味があります。ありがとう。

4

5 に答える 5

221

Angular 式は 1.1.5 より前では三項演算子をサポートしていませんが、次のようにエミュレートできます。

condition && (answer if true) || (answer if false)

したがって、たとえば、次のようなものが機能します。

<div ng-repeater="item in items">
    <div>{{item.description}}</div>
    <div>{{isExists(item) && 'available' || 'oh no, you don't have it'}}</div>
</div>

更新: Angular 1.1.5 で三項演算子のサポートが追加されました:

{{myVar === "two" ? "it's true" : "it's false"}}
于 2013-05-16T11:16:24.173 に答える
41

この小さなプランカー (1.1.5 の例) で示されているように、バージョン 1.1.5 以降から三項演算子を使用できます

歴史的な理由から(plnkr.co は将来何らかの理由で停止する可能性があります)、私の例のメイン コードを次に示します。

{{true?true:false}}
于 2014-02-20T14:42:42.873 に答える
0

キーが角度のある配列に存在するかどうかを確認しようとしており、この質問にここにたどり着きました。私のAngularjs 1.4三項演算子では、以下のように機能しました

{{ CONDITION ? TRUE : FALSE }}

したがって、配列キーが存在するために、単純なJSチェックを行いました

解決策 1 :{{ array['key'] !== undefined ? array['key'] : 'n/a' }}

解決策 2 :{{ "key" in array ? array['key'] : 'n/a' }}

于 2020-08-21T08:10:12.227 に答える