Присоединение события jQuery к результатам AngularJS

0

Как добавить событие jQuery click к li который был динамически создан AngularJS

Угловой код/базы данных/фильтрация работают отлично, я просто хочу, чтобы сделать это так, чтобы при нажатии на одну из li он делает что - то.

Я новичок в Angular

HTML

<li ng-repeat="data in filtered = (list | filter:search | orderBy : predicate :reverse) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit" data-name="{{data.customerName}}" class="myli">
               <strong>{{data.customerName}}</strong><br />
               {{data.addressLine1}}, {{data.city}}, {{data.state}}, {{data.postalCode}}, {{data.country}}<br />
               <code>{{data.creditLimit}}</code>
</li>

JQuery

$(document).ready(function(){
        $(".myli").on("click", function(){
            var name = $(this).data("name");
            alert(name);
        });
});

благодаря

Теги:
repeat
events

1 ответ

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

В идеале вы будете использовать функцию ng-click https://docs.angularjs.org/api/ng/directive/ngClick на вашем li

<li ng-click="eventHandler(data)" ... class="myli">

и затем в вашем контроллере

scope.eventHandler = function(data){
     alert(data.name);
}

Теперь вы удалили свою зависимость jquery, и вы можете изменить все типы элементов, классы и даже то, что вы хотите назвать своим элементом данных в разметке, без необходимости менять свой код в контроллере

  • 0
    Спасибо - это прекрасно!
  • 0
    Как общий план, когда вы используете angular и думаете: «Я могу сделать это с помощью Jquery», НЕ делайте. Angular предоставляет инструменты для выполнения большей части манипуляций и управления пользовательским интерфейсом, которые исторически выполнялись с использованием JQuery. Посмотрите здесь: stackoverflow.com/questions/14994391/… для советов

Ещё вопросы

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