如果作用域值等于单击的元素的属性值,则Ng类

Ng-class if scope value equals attribute value of element clicked

本文关键字:属性 元素 Ng 单击 作用域 于单击 如果      更新时间:2023-12-10

只有当"selectedFilter"的scope值=="type"属性的值时,我才能编写一个添加类"active"的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;
        };
    }

我不确定是否有一种很好的方法可以在不访问$event的情况下将DOM上下文传递给作用域上的函数,就像ng-click一样。或者,您可以完全放弃使用ng类,只需通过访问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 = ''
      }
    }