2015-09-29 5 views
0

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

<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 см, я не могу использовать угловой для этого

+0

разместить код у вас уже есть, поэтому мы посмотрим на него может – Jesse

+0

я бы рекомендовал использовать 'нг-mouseover' и' нг-click' атрибутов в шаблонах

  • ...
  • Schlangguru

    +0

    Вы не должны использовать jquery только для привязки событий, то же самое возможно с угловым, см. комментарий @ schlangguru – dreamweiver

    ответ

    0

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

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

    Calling a function when ng-repeat has finished

    , если вам нужно выполнить некоторый код после повторных отделок и получить длину от самого объекта, используя список групп 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, что позволяет Угловым манипулировать 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... 
        }); 
    

    Спасибо!