2016-07-26 7 views
0

Я получил пагинацию в угловом сделана в $http.get так:
Execute Javascript после Угловая DOM Манипуляции

if (vm.currentPage <= 6) { 
     vm.pagination = _.range(1, 11); 
} 
if (vm.currentPage > 6) { 
    vm.pagination = _.range(vm.currentPage - 5, vm.currentPage + 5); 
} 
if (vm.currentPage > vm.maxPage - 5) { 
     vm.pagination = _.range(vm.maxPage - 10, vm.maxPage + 1) 
} 


<li ng-repeat='val in vm.pagination' class="page"> 
    <a href="{{val}}" value="{{val}}">{{val}}</a> 
</li> 

Я также получил Jquery функции, что я хочу быть выполнен после VM .pagination обновляется на index.html:

$("a[value=" + vm.currentPage + "]").parent().addClass("active"); 

На этом этапе я жду завершения $ http.get и выполняю функцию jquery после него, но все же Angular добавляет новые элементы li после того, как все выполняется в контроллере.

Как сделать функцию jquery выполненной после того, как угловая отделка обновлена ​​vm.pagination in view?

+2

Что C# для? – gcampbell

+0

Возможный дубликат [Переключить классы в список с угловым] (http://stackoverflow.com/questions/27823122/toggle-classes-in-a-list-with-angular) –

+0

добавить обратный вызов для exec JQuery – kollein

ответ

1

Вы можете создать пользовательскую директиву

<li ng-repeat='val in vm.pagination' id="page" my-repeat-directive> 
    <a href="{{val}}" value="{{val}}">{{val}}</a> 
</li> 

angular.module('myApp', []).directive('myRepeatDirective', function() { 
    return function(scope, element, attrs) { 
    angular.element(element).css('color','blue'); 
    if (scope.$last){ 
     window.alert("im the last!"); // Execute you code here 
    } 
    }; 
}) 

Вы можете получить более подробную информацию (и пример) в Source Answer