SORU
13 Mayıs 2013, PAZARTESİ


AngularJS ngClass koşullu

Orada herhangi bir şey için bir ifade yapmak için bir koşullu olmak ngClass gibi. Örneğin, aşağıdaki denedim:

<span ng-class="{test: 'obj.value1 == \'someothervalue\''}">test</span>

Bu kod ile sorun ne olursa olsun n.değer1, sınıf test her zaman elemanı uygulanır. Bu işi yapmaya

<span ng-class="{test: obj.value2}">test</span>

Sürece n.değer2 truthy bir değere eşit değil, uygulanan değil, sınıf. Şimdi bunu yaparak ilk örnekte bu soruna geçici bir çözüm bulmak istiyorum

<span ng-class="{test: checkValue1()}">test</span>

checkValue1 işlevi bu gibi görünüyor:

$scope.checkValue1 = function() {
  return $scope.obj.value === 'somevalue';
}

Sadece bu ngClass çalışmak gerekiyordu nasıl olduğunu merak ediyorum. Ayrıca buna benzer bir şey yapmak istiyorum özel bir yönerge yapıyorum. Ancak bir ifade (ve belki de bu gibi işleri neden imkansız ve nedeni) izlemek için bir yol bulamıyorum.

Burada ne demek istediğimi göstermek için bir plnkr:

http://plnkr.co/edit/iSh0t8swDEyGbh7ylZg2?p=preview

CEVAP
13 Mayıs 2013, PAZARTESİ


İlk denemen tırnak işaretleri olmadan çalışması gerekir neredeyse.

{test: obj.value1 == 'someothervalue'}

Burada plnkr.

NgClass yönergesi truthy veya falsey, biraz Javascript ifadeleri benzer değerlendirir bir ifade ile çalışır, ama bazı farklılıklar ile, herehakkında okuyabilirsiniz. Eğer koşullu çok karmaşık ise, o zaman üçüncü denemede yaptığın gibi truthy veya falsey döndüren bir işlev kullanabilirsiniz.

Sadece tamamlamak için: ayrıca mantıksal operatörler gibi mantıksal ifadeler forma kullanabilirsiniz

ng-class="{'test': obj.value1 == 'someothervalue' || obj.value2 == 'somethingelse'}"

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BruBearBaby

    BruBearBaby

    25 Ocak 2011
  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010