2014-01-17 3 views
27

У меня есть меню панели, прекрасно работающее на сайте. Пользователь может открывать и закрывать его с помощью навигатора или сдвигая его пальцем.Как проверить, имеет ли элемент класс с AngularJS?

Прямо сейчас у меня есть очень красивый значок навигатора, который переходит с иконки меню на значок X, когда нажимается (и открывается меню), и наоборот, когда нажимается снова, и меню закрывается. Buuut, если пользователь скользит меню открыто или закрыто вместо использования навигатора, переход не запускается, что может привести к путанице в UX (т.е. закрываемое меню и навигационному устройству, показывающему X вместо обычных 3 горизонтальных линий значок).

Итак, NaviCon имеет теперь следующий код, чтобы вызвать переход:

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

я подумал, что хороший и простой способ исправить это, было бы вызвать это «разомкнут = открыт!» Каждый когда меню открыто или закрыто, так как js с выпадающей панели добавляет класс slidRight к основному разделу, когда меню открыто, и удаляет его, когда он закрыт.

Быть таким, есть ли какой-либо прямой способ проверить, существует ли класс с помощью AngularJS? Что-то вроде , если class = slidRight -> "open =! Open".

Спасибо!

ответ

21

Угловое использование jqLite's .hasClass() изначально.

Читайте здесь, в угловых документах, для получения дополнительной информации.

http://docs.angularjs.org/api/angular.element

+1

Просить встроенный способ обнаружения класса в ng-click – efwjames

74

для тех, кто (включая меня), которые не могли получить их вокруг головы документации ANGULAR, вот пример, который работал для меня:

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

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

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

надеюсь, что это поможет кому-то ...

+5

Это должен быть принятый ответ! –

+6

Не нужно использовать 'angular.element (myElement)', 'myElement.hasClass (...)' достаточно. – morels

+0

No Dot! Спасибо! –

Смежные вопросы