如何使用 angularJS 和 jqlite 测试是否 event.target.hasClass()?

How to test if event.target.hasClass() using angularJS and jqlite?

单击后将事件传递给 ctrl。我想写一个条件,如果 element.target 有 class modal-click-shield

则 return 为真

问题:

如何使用 angulars 的 jqlite.hasClass()event.target 一起使用?

问题:

目前我收到类型错误:

$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>

因为 event.target 是一个 DOM 节点,而不是 "jQuery" 对象。包起来

var target = $(event.target);

angular.element(event.target);

来自 event.target 的元素是常规 HTMLElement,而不是 JQlite 版本。你需要这样做来转换它:

angular.element(event.target);

如果您想继续使用 JS DOM 元素而不使用 jQuery 或 angular:

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