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 отобразит шаблон?