angularjs: какое событие я должен использовать после рендеринга шаблона?

Я использую маршруты с шаблоном HTML

$routeProvider.when('/newroute',
{
templateUrl: 'template/newroute.html',
controller: 'myController'
});

Мне нужно что-то сделать, чтобы манипулировать DOM с помощью jquery после рендеринга шаблона html (я знаю, что это не очень хорошая практика, но я не смог найти ответ на свой вопрос)

Однако я не смог найти правильное событие, которое происходит сразу после рендеринга шаблона HTML. Я попробовал следующее, которое не работает.

$scope.$on('$viewContentLoaded', function () {
   doSomething(); //does not work
});

Когда я отлаживаю в viewContentLoaded, шаблон HTML DOM все еще невидим. Есть идеи?

1 ответ

У меня такая же проблема. Я решил, что с помощью setTimeout запустить JQuery

                setTimeout(function () {
                var l=$('.accordion-section').length;
                if(l>0){
                    $('.accordion-section').equalHeights();
                }
            },500);

Я поместил вызов setTimout в инициализацию моего контроллера. Здесь есть и другие ответы, но $timeout не работал для меня. AngularJS: Как запустить дополнительный код после того, как AngularJS отобразит шаблон?

Другие вопросы по тегам