Run javascript code after angularjs route loaded

2019-04-06 20:21发布

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.

2条回答
够拽才男人
2楼-- · 2019-04-06 21:04

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
});
查看更多
迷人小祖宗
3楼-- · 2019-04-06 21:11

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");
    }
});
查看更多
登录 后发表回答