Доступ к типу нажатого элемента в Angular

0

В Angular есть способ доступа к типу элемента, который был нажат? У меня есть следующее в jQuery, и он отлично работает, проблема в том, что я не знаю, как сделать эквивалент в проекте Angular, на который меня попросили посмотреть.

// Click action
$(".contactlist").on("click", function(e) {

    if (!$(e.target).is(':checkbox') && !$(e.target).is("li:nth-child(1)")) {
        var token = $(this).data('token');
        window.location.href = "XYZ.php?page=contacts&token=" + token;
    }

});

Как я могу изменить этот обработчик углового события, чтобы работать как вышеописанный jQuery?

$scope.eventHandler = function(data) {
        window.location.href = "XYZ.php?page=contacts&token=" + data.token;
};

Что-то вроде этого????

$scope.eventHandler = function(data) {
    if (!$(this.target).is(':checkbox') && !$(this.target).is("li:nth-child(1)")) {
        window.location.href = "XYZ.php?page=contacts&token=" + data.token;
    }
};

HTML-код

<li><input type="checkbox" class="check" data-token="{{data.token}}" name="addselect[]"></li>
  • 0
    Вы включили JQuery? $(this.target) - это jQuery, а не Angular.
  • 0
    Да, библиотека jQuery включена.
Теги:

1 ответ

0
Лучший ответ

Используйте директиву с элементом element.bind.

  app.directive('clickMe', function() {
  return function(scope, element, attr, html) {
    element.bind('mouseup', function() {
      console.log(JSON.stringify(attr));
      });
    };
  });

Ваш HTML будет выглядеть так:

<input type="checkbox" class="check" data-token="{{data.token}}" click-me name="addselect[]">

Возвращает следующее для флажка:

{"$attr":{"type":"type","class":"class","token":"data-token","clickMe":"click-me","name":"name"},"$$element":{"0":{"ng339":7},"length":1},"type":"checkbox","class":"check","token":"","clickMe":"","name":"addselect[]","$$observers":{"token":[]}}

В директиве, если вы просто хотите получить тип, attr.type предоставит его.

checkbox

Ещё вопросы

Сообщество Overcoder
Наверх
Меню