请,
我在我的项目中使用ui-router。当用户在状态之间导航时,OtherRole
事件正常工作。
但是,如果我刷新浏览器,它就无法工作。
这是我的源代码:
$stateChangeStart
我的布局文件
(function(){
'use strict';
angular.module('app.overlay')
.directive('ibLoading', ['$rootScope' , '$timeout', loading]);
function loading($rootScope , $timeout){
console.log("In dirrective");
var directive = {
restrict:'EAC',
link:link
};
function link(scope, element) {
$rootScope.$on('$stateChangeStart', function() {
$timeout(function(){
element.addClass('show');
} , 50);
});
$rootScope.$on('$stateChangeSuccess', function() {
$timeout(function(){
element.removeClass('show');
} , 700);
});
}
return directive;
}
})();
答案 0 :(得分:1)
用户刷新不会触发$ stateChangeStart或$ stateChangeSuccess。但是 $ viewContentLoading 和 $ viewContentLoaded 会触发。
您可以尝试以下方法:
$rootScope.$on('$viewContentLoading', function() {
$timeout(function(){
element.addClass('show');
} , 50);
});
$rootScope.$on('$viewContentLoaded', function() {
$timeout(function(){
element.removeClass('show');
} , 700);
});
答案 1 :(得分:0)
试试这个,
如果您更改状态,可以在控制台中查看状态,但如果重新加载页面,则会重新加载状态
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
console.log("Switching To: ", toState.name);
});