Yanıtlar:
Güncelleme : Açısal 1.1.5 üçlü bir operatör ekledi , böylece şimdi yazabiliriz
<li ng-class="$first ? 'firstRow' : 'nonFirstRow'">
Angular'ın önceki bir sürümünü kullanıyorsanız, iki seçeneğiniz şunlardır:
(condition && result_if_true || !condition && result_if_false)
{true: 'result_if_true', false: 'result_if_false'}[condition]
madde 2. yukarıdaki iki özelliğe sahip bir nesne oluşturur. Dizi sözdizimi, true adlı özelliği veya false adlı özelliği seçmek ve ilişkili değeri döndürmek için kullanılır.
Örneğin,
<li class="{{{true: 'myClass1 myClass2', false: ''}[$first]}}">...</li>
or
<li ng-class="{true: 'myClass1 myClass2', false: ''}[$first]">...</li>
$ first, ilk öğe için bir ng tekrarı içinde true değerine ayarlanır, bu nedenle yukarıdaki 'myClass1' ve 'myClass2' sınıflarını yalnızca döngü boyunca ilk kez uygular.
Ng sınıfı ile daha kolay bir yol vardır: ng sınıfı aşağıdakilerden birini değerlendirmesi gereken bir ifade alır:
Yukarıda 1) örneği verilmiştir. İşte çok daha iyi okuduğunu düşündüğüm 3 örneği:
<li ng-class="{myClass: $first, anotherClass: $index == 2}">...</li>
İlk kez bir ng tekrar döngüsünde sınıf myClass eklenir. 3. kez ($ endeksi 0'da başlar), anotherClass sınıfı eklenir.
ng-stili , CSS stil isimlerinin CSS değerleriyle eşlenmesi / nesnesi için değerlendirilmesi gereken bir ifade alır. Örneğin,
<li ng-style="{true: {color: 'red'}, false: {}}[$first]">...</li>
ng-style
Güncellemek istiyorum , ancak sadece öğe ilk oluşturulduğunda değerlendirilmiş gibi görünüyor. (Açısal noob burada)
Güncelleme: Açısal 1.1.5 üçlü bir operatör ekledi, bu cevap yalnızca 1.1.5'ten önceki sürümler için geçerlidir. 1.1.5 ve sonraki sürümler için şu anda kabul edilen cevaba bakınız.
Açısal 1.1.5 öncesi:
Angularjs'deki üçlü bir şekil:
((condition) && (answer if true) || (answer if false))
Örnek olarak şunlar verilebilir:
<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>
veya:
<li ng-disabled="currentPage == 0" ng-click="currentPage=0" class="{{(currentPage == 0) && 'disabled' || ''}}"><a> << </a></li>
Şimdiye kadar hepimiz 1.1.5 versiyonunun $parse
fonksiyonda uygun bir üçlü ile geldiğini öğrendik, bu yüzden sadece bu cevabı filtrelerin bir örneği olarak kullanın:
angular.module('myApp.filters', [])
.filter('conditional', function() {
return function(condition, ifTrue, ifFalse) {
return condition ? ifTrue : ifFalse;
};
});
Ve sonra onu
<i ng-class="checked | conditional:'icon-check':'icon-check-empty'"></i>
İşte: üçlü operatör açısal ayrıştırıcıya 1.1.5'te eklendi ! değişiklik günlüğüne bakın
İşte ng-class yönergesinde kullanılan yeni üçlü operatörü gösteren bir keman .
ng-class="boolForTernary ? 'blue' : 'red'"
Eğer kullanabilirsiniz ancak condition && if-true-part || if-false-part
açısal eski sürümlerinde -Sözdizimi, olağan üçlü operatör condition ? true-part : false-part
mevcuttur 1.1.5 ve üstü Açısal .
<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>
Düğme geçiş ve düğme üstbilgisini değiştirmek ve div panelini göstermek / gizlemek. Plunkr'ı görün