我使用this来创建我的网站,当我使用$ rootScope.on(' $ stateChangeStart')创建一个run方法时,它并没有工作。这是代码:
.run('Url',function($rootScope, $state, $location){
'ngInject' ;
console.log('Is working');
function message(to, toP, from, fromP) {
return from.name + angular.toJson(fromP) + " -> " + to.name + angular.toJson(toP);
}
$rootScope.$on("$stateChangeStart", function(evt, to, toP, from, fromP) {
console.log("Start: " + message(to, toP, from, fromP));
console.log('Not working');
});
我加载网站时的第一个日志正在运行但是后两个日志没有,问题出在哪里?
答案 0 :(得分:2)
如果您更改版本。
对于新的ui-router(Angular 1.x版本)。您需要加载stateEvents文件。
<script src="lib/angular-ui-router/release/stateEvents.min.js"></script>
在您的应用程序中添加加载
angular.module('MyApp', ['ui.router', 'ui.router.state.events', ...
答案 1 :(得分:0)
你可以像使用
一样使用rootScope。$ on.run(['$rootScope', '$state', '$location',function($rootScope, $state, $location){
console.log('Is working');
function message(to, toP, from, fromP) {
return from.name + angular.toJson(fromP) + " -> " + to.name + angular.toJson(toP);
}
$rootScope.$on("$stateChangeStart", function(evt, to, toP, from, fromP) {
console.log("Start: " + message(to, toP, from, fromP));
console.log('Not working');
})
}]);
答案 2 :(得分:0)
试试这个:&#39; $ viewContentLoading&#39;或者&#39; $ viewContentLoaded&#39; :
$rootScope.$on('$viewContentLoading', function() {
// your stuff here…
});
$rootScope.$on('$viewContentLoaded', function() {
// your stuff here…
});