在angularjs路由加载后运行javascript代码

时间:2014-04-16 02:18:26

标签: javascript jquery ajax angularjs asynchronous

我需要在angularjs加载路线后显示警告。显示警报的代码段位于由angularjs异步加载的视图中:

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

一旦加载了视图,我希望它能够运行,但事实并非如此。我知道我可以播放并告诉它之后运行等,但我需要一个更通用的解决方案。

2 个答案:

答案 0 :(得分:22)

假设您正在讨论基于角度SPA内部ngRoute的路线变更

将$ route注入您的控制器:

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

并在您的控制器中订阅路线更改事件:

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

答案 1 :(得分:5)

还有一个选项可以运行javascript函数ngInit

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

调用控制器内部的函数

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