Я делаю список 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, я не могу использовать угловые для этого
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 в вашей обработке событий.
<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...
});
Благодаря !!
ng-mouseover
иng-click
в ваших шаблонах <li> ... </ li>