получить длину углового js ng-repeat li, перечисляющего элементы с помощью jquery

0

Я делаю список ul-li используя угловой ng-repeat. Но в DOMReady я хочу, чтобы общая длина этого списка была сгенерирована, и я хочу запустить событие на этом li на "зависании" или "щелчке". Но длина iam get равна 0, и никакое событие не срабатывает. Какой может быть лучший способ получить это? Заранее спасибо!

 <ul class="megamenuUL">
        <li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList">
</li>
    </ul>
    <script>

        $(document).ready(function () {
          console.log($("ul.megamenuUL > li").length);
    });
    </script >

события, которые мне нужно стрелять по наведению этого li

 $("#divOffers ul.megamenuUL > li > a").hover(function () {

                   $("#divOffers .megamenuUL > li").removeClass('active');
                   $(this).parent().find("#divOffers ul.megasubmenu li").removeClass('active');
                   $(this).parent().find("#divOffers ul.megasubmenu li:eq(0)").addClass('active');
                   $(this).parent().addClass('active');
               });

U see, я не могу использовать угловые для этого

  • 0
    опубликовать код, который у вас уже есть, чтобы мы могли взглянуть на него
  • 0
    Я бы порекомендовал использовать атрибуты ng-mouseover и ng-click в ваших шаблонах <li> ... </ li>
Показать ещё 1 комментарий
Теги:
hover
domready
ng-repeat

2 ответа

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

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

Или вы можете сделать это с помощью углового с помощью ответа на следующий вопрос:

Вызов функции, когда ng-repeat завершен

если вам нужно выполнить некоторый код после завершения повтора и получить длину из самого объекта GroupList с использованием свойства length.

Вы также можете использовать угловые события ng-mouseover и ng-mouseleave для привязки зависания к функциям от контроллера

<li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList" ng-mouseover="hoverIn()" ng-mouseleave="hoverOut()">

Также угловой имеет jqLite, который является крошечным API-совместимым подмножеством jQuery, который позволяет Angular манипулировать DOM кросс-браузерным способом. Таким образом, вы можете воспользоваться аналогичным поведением jQuery в вашей обработке событий.

0
  <li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList"  on-finish-render="ngRepeatFinished">

</li>    
$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
   //do stuff, execute functions -- whatever...
    });

Благодаря !!

Ещё вопросы

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