web-dev-qa-db-ja.com

AngularJS-三項演算子に応じてデータバインディング値を使用できますか

Ng-repeat li要素があり、関数にtrueまたはfalseが返されるかどうかに応じてliに特定の値を設定したいので、実行したくないすべてのli要素に対して最小化または最大化する依存関係の問題があるため、コントローラーでそれを行いますが、個々のli要素に対してそれを使用します。運が悪かったので、以下のようなものを使ってみました。私は何が間違っているのかはわかりませんが、入力や他の方法でこれに感謝します。

object1は、このli要素を含むng-repeatからのものです。

<li><a tabindex="-1" ng-click="setHidden(object1)">{isItHidden(object1) ? 'Minimize' : 'Maximize'}</a></li>

解決策(jdpに感謝)

<li><a tabindex="-1" ng-click="setHidden(object1)">{{isItHidden(object1)}}</a></li>

$scope.isItHidden = function(object){
    return object.hidden ? 'Maximize' : 'Minimize';
}
13
Georgi Angelov

あなたはこれを行うことができます

{{ object1.hidden && 'Minimize' || 'Maximize' }}

angular 1.2では、実際の三項演算子が追加されます。

12

angular 1.2のリリースにより、ng-bind内でより直感的な三項演算子を使用できるようになりました

<a ng-bind="object1.hidden ? 'Maximize' : 'Minimize'"></a>

または括弧内

<a>{{ object1.hidden ? 'Maximize' : 'Minimize' }}</a>
31