Evento di AngularJs da chiamare dopo il caricamento del contenuto



Answers

Angolare <1.6.X

angular.element(document).ready(function () {
    console.log('page loading completed');
});

Angolare> = 1,6.X

angular.element(function () {
    console.log('page loading completed');
});
Question

Ho una funzione che voglio chiamare dopo il caricamento del contenuto della pagina. Ho letto su $ viewContentLoaded e non funziona per me. Sto cercando qualcosa di simile

document.addEventListener('DOMContentLoaded', function () { 
     //Content goes here 
}, false);

Sopra la chiamata non funziona per me nel controller di AngularJs.




Puoi chiamarlo direttamente aggiungendo {{YourFunction()}} dopo l'elemento HTML.

Ecco un Plunker Link .




Se stai ricevendo un errore $ digest già in corso, questo potrebbe aiutare:

return {
        restrict: 'A',
        link: function( $scope, elem, attrs ) {
            elem.ready(function(){

                if(!$scope.$$phase) {
                    $scope.$apply(function(){
                        var func = $parse(attrs.elemReady);
                        func($scope);
                    })
                }
                else {

                    var func = $parse(attrs.elemReady);
                    func($scope);
                }

            })
        }
    }



Stavo usando {{myFunction()}} nel template ma poi ho trovato un altro modo usando $timeout all'interno del controller. Ho pensato di condividerlo, funziona benissimo per me.

angular.module('myApp').controller('myCtrl', ['$timeout',
function($timeout) {
var self = this;

self.controllerFunction = function () { alert('controller function');}

$timeout(function () {
    var vanillaFunction = function () { alert('vanilla function'); }();
    self.controllerFunction();
});

}]);



var myTestApp = angular.module("myTestApp", []); 
myTestApp.controller("myTestController", function($scope, $window) {
$window.onload = function() {
 alert("is called on page load.");
};
});



Se vuoi che qualche elemento sia completamente caricato, usa ng-init su quell'elemento.

es. <div class="modal fade" id="modalFacultyInfo" role="dialog" ng-init="initModalFacultyInfo()"> ..</div>

la funzione initModalFacultyInfo () dovrebbe esistere nel controller.




Links