2016-04-04 17 views
1

"active" sınıfını yalnızca "selectedFilter" == "type" özniteliğinin değeri değeri eklerse ng-class işlevi nasıl yazabilirim? ?Kapsam değeri, öğenin öznitelik değerine eşitse Ng sınıfı

HTML:

<li ng-click="selectFilter($event)" ng-class="{'active': selectedFilter == $element.type}" type="portfolio">PORTFOLIO</li> 

Yönergesi fonksiyonu:

link: function(scope, el, attr) { 
     scope.selectFilter = function(filterChosen){ 
      var selectedFilterValue = filterChosen.target.attributes.type.value; 
      scope.selectedFilter = selectedFilterValue; 
     }; 
    } 

cevap

0

Ben $event erişimi olmadan kapsamı üzerinde bir işleve DOM bağlamını geçirmek için harika bir yol var emin değilim ng-tıklama gibi. Alternatif olarak ng-class'ı kullanmayı bırakabilir ve sadece ng-click fonksiyonunuzun içindeki elemente erişerek sınıfı manuel olarak atayabilirsiniz. Böyle

şey:

for (var i = 0; i < element[0].children.length; i++) { 
     if (element[0].children[i].type == scope.selectedFilter) { 
     element[0].children[i].className = 'active' 
     } else { 
     element[0].children[i].className = '' 
     } 
    } 
İlgili konular