Tüm tabloya zaten uygulanmış bir sınıf (örneğin, tek satırlara uygulanan bir renk) olduğunda tablo öğeleri içinde sınıfları uygularken sorunlar buldum <myClass tbody tr:nth-child(even) td>
. Birlikte öğeyi denetle zaman görünüyor Geliştirici Araçları , element.style
atanmış bir tarzı vardır. Yani kullanmak yerine kullanmayı ng-class
denedim ng-style
ve bu durumda yeni CSS özelliği içeride görünüyor element.style
. Bu kod benim için harika çalışıyor:
<tr ng-repeat="element in collection">
[...amazing code...]
<td ng-style="myvar === 0 && {'background-color': 'red'} ||
myvar === 1 && {'background-color': 'green'} ||
myvar === 2 && {'background-color': 'yellow'}">{{ myvar }}</td>
[...more amazing code...]
</tr>
Myvar , değerlendirdiğim şeydir ve her durumda , tüm tablo için CSS sınıfı tarafından uygulanan geçerli stilin üzerine yazan, myvar değerine <td>
bağlı olarak her birine bir stil uygularım .
GÜNCELLEME
Örneğin, bir sayfayı ziyaret ederken veya diğer durumlarda tabloya bir sınıf uygulamak istiyorsanız, bu yapıyı kullanabilirsiniz:
<li ng-class="{ active: isActive('/route_a') || isActive('/route_b')}">
Temel olarak, bir ng sınıfını etkinleştirmek için ihtiyacımız olan , uygulanacak sınıf ve doğru veya yanlış bir ifadedir. True sınıfı uygular ve false uygulamaz. Yani burada biz sayfanın güzergahı ve bir iki çekler var OR içinde bulunduğumuz eğer öyleyse, aralarında /route_a
VEYA içinde bulunduğumuz route_b
, aktif sınıf uygulanacaktır.
Bu, sağda doğru veya yanlış döndüren bir mantık işlevine sahip olarak çalışır.
İlk örnekte, ng-tarzı üç ifadeyle koşullandırılmıştır. Hepsi yanlışsa, stil uygulanmaz, ancak mantığımıza göre en az bir tane uygulanır, bu nedenle mantık ifadesi hangi değişken karşılaştırmasının doğru olduğunu ve boş olmayan bir dizi her zaman doğru olduğundan, bir dizi dönüş olarak bırakıldı ve tüm yanıt için OR kullandığımızı düşünürsek , kalan stil uygulanacaktır.
Bu arada, size isActive () işlevini vermeyi unuttum:
$rootScope.isActive = function(viewLocation) {
return viewLocation === $location.path();
};
YENİ GÜNCELLEME
Burada gerçekten yararlı bulduğum bir şey var. Bir değişkenin değerine bağlı olarak bir sınıf uygulamanız gerektiğinde, örneğin, içeriğine bağlı olarak bir simge div
, aşağıdaki kodu kullanabilirsiniz (çok kullanışlı ng-repeat
):
<i class="fa" ng-class="{ 'fa-github' : type === 0,
'fa-linkedin' : type === 1,
'fa-skype' : type === 2,
'fa-google' : type === 3 }"></i>
Font Awesome'den simgeler