2016-04-04 8 views
1

"selectedFilter"のスコープ値== "type"属性の値である場合にのみ、クラス "active"を追加するng-class関数を書くにはどうすればよいですか?スコープの値がクリックされた要素の属性値と等しい場合のNgクラス

HTML:

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

指令機能:

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

答えて

0

私は$eventにアクセスすることなく、あなたのスコープの機能にDOMコンテキストを渡すための素晴らしい方法がありますかわかりませんng-clickのように。代わりに、ng-classを使用していなくても、ng-click関数内の要素にアクセスすることで、クラスを手動で割り当てることができます。

このような何か:

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 = '' 
     } 
    } 
関連する問題