Как проверить, если event.target.hasClass() использует angularJS и jqlite?

После щелчка передайте событие ctrl. Я хочу написать условие, которое вернет true, если element.target имеет класс modal-click-shield

Вопрос:

Как я могу использовать .hasClass() с event.target используя угловые jqlite?

Проблема:

В настоящее время я получаю сообщение об ошибке типа:

$scope.exitModal = function(event){
        // Return to current page when exiting the modal, via UI.
        // After state return, should set focus on the matching link.
        var target = event.target;
        console.log(target.hasClass('modal-click-shield'));
});

Ошибка:

 TypeError: undefined is not a function

Html:

  <div class="modal-click-shield" ng-click="exitModal($event)">
     <div ui-view="pdw"  class="product-container"></div>
  </div>

3 ответа

Решение

Ваш элемент из event.target это обычный HTMLElement, а не версия JQlite. Вы должны сделать это, чтобы преобразовать это:

angular.element(event.target);

Если вы хотите продолжать использовать простой элемент JS DOM без использования jQuery или angular:

event.target.classList.contains('modal-click-shield')

Потому что event.target является узлом DOM, а не объектом "jQuery". Заверните это

var target = $(event.target);

или же

angular.element(event.target);
Другие вопросы по тегам