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

  • DJAndrewRyan

    DJAndrewRyan

    22 Ocak 2007
  • AutoStream's Garage419

    AutoStream's

    15 EKİM 2007
  • Study with Substance P

    Study with S

    31 Mayıs 2008