如何使用AngularJS检查元素是否具有类?

36

我在一个网站上有一个完美运行的离线菜单。用户可以使用导航图标或用手指滑动来打开和关闭它。

现在,我有一个非常漂亮的导航图标,当被点击时它会从菜单图标转换为X图标(并打开菜单),再次点击它将恢复原状并关闭菜单。但是,如果用户滑动菜单而不是使用导航图标,过渡效果就不会触发,这可能导致用户体验上的混乱(例如,菜单处于关闭状态,而导航图标显示X而不是常规的三条水平线图标)。

因此,导航图标现在具有以下代码来触发过渡:

ng-click="open = !open" ng-class="{'open-mob':open}">

我认为解决这个问题的一个好而简单的方法是,在菜单打开或关闭时每次触发"open = !open"。因为在菜单打开时,来自边栏的js会向主区域添加class slidRight,当菜单关闭时则会将其删除。

那么,有没有一种直接的方法可以使用AngularJS检查是否存在这个类呢?类似于if class = slidRight -> "open = !open"

谢谢!

2个回答

91

对于那些(包括我)无法理解 Angular 文档的人,这里有一个对我有效的示例:

angular.element(myElement).hasClass('my-class');

angular.element(myElement).addClass('new-class');

angular.element(myElement).removeClass('old-class');

希望这能帮助到某些人...


6
无需使用 angular.element(myElement)myElement.hasClass(...) 就足够了。 - morels
不要加点号!谢谢! - R Claven
2
angular.element() is useful for cases like: const el = document.getElementById(id); angular.element(el).hasClass(...); - doublesharp

22

3
请求一种内联方式来检测ng-click中的类。 - ericjam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接