回答:
アップデート:アンギュラ1.1.5が追加さ三項演算子、今私たちができるだけで書き込みを
<li ng-class="$first ? 'firstRow' : 'nonFirstRow'">
Angularの以前のバージョンを使用している場合、2つの選択肢があります。
(condition && result_if_true || !condition && result_if_false)
{true: 'result_if_true', false: 'result_if_false'}[condition]
上記の項目2.は、2つのプロパティを持つオブジェクトを作成します。配列構文を使用して、名前がtrueのプロパティまたは名前がfalseのプロパティを選択し、関連付けられた値を返します。
例えば、
<li class="{{{true: 'myClass1 myClass2', false: ''}[$first]}}">...</li>
or
<li ng-class="{true: 'myClass1 myClass2', false: ''}[$first]">...</li>
$ firstは、最初の要素のng-repeat内でtrueに設定されているため、上記では、クラス 'myClass1'と 'myClass2'がループで最初にのみ適用されます。
でNG-クラス NG-クラスは、次のいずれかに評価されなければならない式を取りますけれども、もっと簡単な方法があります:
1)の例は上に示した。これは3の例です。
<li ng-class="{myClass: $first, anotherClass: $index == 2}">...</li>
ng-repeatループを初めて通過するときに、クラスmyClassが追加されます。3回目($ indexは0から始まります)、クラスanotherClassが追加されます。
ng-styleは、CSSスタイル名からCSS値へのマップ/オブジェクトに評価される必要がある式を受け取ります。例えば、
<li ng-style="{true: {color: 'red'}, false: {}}[$first]">...</li>
ng-style
更新したいのですが、要素が最初にレンダリングされたときにのみ評価されるようです。(ここでの角度のnoob)
更新: Angular 1.1.5は三項演算子を追加しました。この答えは1.1.5より前のバージョンにのみ正解です。1.1.5以降については、現在受け入れられている回答を参照してください。
Angular 1.1.5より前:
angularjsの三項の形式は次のとおりです。
((condition) && (answer if true) || (answer if false))
例は次のとおりです。
<ul class="nav">
<li>
<a href="#/page1" style="{{$location.path()=='/page2' && 'color:#fff;' || 'color:#000;'}}">Goals</a>
</li>
<li>
<a href="#/page2" style="{{$location.path()=='/page2' && 'color:#fff;' || 'color:#000;'}}">Groups</a>
</li>
</ul>
または:
<li ng-disabled="currentPage == 0" ng-click="currentPage=0" class="{{(currentPage == 0) && 'disabled' || ''}}"><a> << </a></li>
これで、バージョン1.1.5には適切な3項が$parse
関数に含まれていることがわかりました。フィルターの例としてこの回答を使用してください。
angular.module('myApp.filters', [])
.filter('conditional', function() {
return function(condition, ifTrue, ifFalse) {
return condition ? ifTrue : ifFalse;
};
});
そしてそれを
<i ng-class="checked | conditional:'icon-check':'icon-check-empty'"></i>
condition && if-true-part || if-false-part
古いバージョンのangularで-syntaxを使用できますが、通常の三項演算子condition ? true-part : false-part
はAngular 1.1.5以降で使用できます。
<body ng-app="app">
<button type="button" ng-click="showme==true ? !showme :showme;message='Cancel Quiz'" class="btn btn-default">{{showme==true ? 'Cancel Quiz': 'Take a Quiz'}}</button>
<div ng-show="showme" class="panel panel-primary col-sm-4" style="margin-left:250px;">
<div class="panel-heading">Take Quiz</div>
<div class="form-group col-sm-8 form-inline" style="margin-top: 30px;margin-bottom: 30px;">
<button type="button" class="btn btn-default">Start Quiz</button>
</div>
</div>
</body>
ボタンの切り替えとボタンのヘッダーの変更、divパネルの表示/非表示。プランカーを見る