SORU
17 EKİM 2011, PAZARTESİ


Koşullu bir sınıf uygulamak için en iyi yolu nedir?

Her öğe için li ul içinde işlenen bir dizi var diyelim ve kumanda özelliği selectedIndex denir. AngularJS selectedIndex dizin li için bir sınıf eklemek için en iyi yolu ne olurdu?

Ben şu anda çoğaltma (elden) li kod ve ekleme sınıfı için bir li etiketleri ve kullanma ng-show ng-hide Haritayı tek li başına dizin.

CEVAP
29 Kasım 2011, Salı


Eğer benim gibi Denetleyici içine CSS sınıf isimleri koymak istemiyorsun. öyleyse burada bir ön-v1 günlerinden beri kullandığım eski bir hiledir. Doğrudan bir sınıf adı olarak değerlendirilen bir ifade yazabilirizseçili- Direktif gerekli hiçbir özel:

ng:class="{true:'selected', false:''}[$index==selectedIndex]"

Lütfen not kolon ile eski sözdizimi.

Ayrıca, gibi koşullu dersleri uygulayarak yeni ve daha iyi bir yolu var:

ng-class="{selected: $index==selectedIndex}"

Açısal şimdi bir nesne döndüren ifadeler destekler. Bu nesnenin her bir özelliği (adı) şimdi bir sınıf adı olarak kabul edilir ve değerine bağlı olarak uygulanır.

Ancak bu şekilde işlevsel olarak eşit değildir. İşte bir örnek:

ng-class="{admin:'enabled', moderator:'disabled', '':'hidden'}[user.role]"

Bu nedenle temelde bir sınıf adı için bir model özellik eşleme tarafından mevcut CSS sınıflarını yeniden yapabiliriz ve Denetleyici kodu dışında aynı zamanda CSS sınıfları tuttu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • JonnyEthco

    JonnyEthco

    5 EKİM 2006