user3428172
user3428172

Reputation: 147

Run javascript code after angularjs route loaded

I need to show an alert after a route has been loaded by angularjs. The piece of code to show the alert is in the view loaded asynchronously by angularjs:

<script>
alert('test');
</script>

Once the view has loaded, I expect this to be run, but it does not. I know I can broadcast and tell it to run afterwards etc, but I need a more generic solution.

Upvotes: 8

Views: 7170

Answers (2)

Mo.
Mo.

Reputation: 27465

There is one more option to run javascript function use ngInit

<div ng-init="initialize()"></div>

call the function which is inside the controller

app.controller('myController', function($scope){
    $scope.initialize = function () {
        alert("Page loading just completed");
    }
});

Upvotes: 5

Brocco
Brocco

Reputation: 64883

Assuming you are talking about route changes based upon ngRoute internal to an angular SPA

Inject $route into your controller:

.controller('MyCtrl', function($scope, $route){});

and in your controller you subscribe to the event of the route changing:

$scope.$on('$routeChangeSuccess', function() {
    alert('test'); // <-- alert from the question
});

Upvotes: 22

Related Questions