这是我的app.js
var $stateProviderRef = null;
var $urlRouterProviderRef = null;
var acadb = angular.module('acadb', [
'ngRoute',
'ui.router',
'ngAnimate',
'ui.bootstrap',
'acadb.controllers',
'acadb.services',
'acadb.filters',
'acadb.directives',
'ngResource',
'angularMoment',
'angularFileUpload',
'ui.materialize',
'angular-toArrayFilter',
'ngSanitize',
'metatags',
])
.run(['$rootScope', '$state', '$stateParams','$http', function($rootScope, $state, $stateParams,$http) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}])
.config(['$locationProvider', '$stateProvider', '$urlRouterProvider', '$httpProvider',
function($locationProvider, $stateProvider, $urlRouterProvider, $httpProvider) {
// XSRF token naming
$httpProvider.defaults.xsrfHeaderName = 'x-dt-csrf-header';
$httpProvider.defaults.xsrfCookieName = 'X-CSRF-TOKEN';
//$httpProvider.interceptors.push('httpInterceptor');
$urlRouterProvider.otherwise("/");
$stateProvider
.state('home', {
url: "/",
templateUrl: '/partials/tpl/welcome.html',
})
.state('jobseeker', {
url: "/jobseeker",
templateUrl: '/partials/dashboard.php',
})
.state('register', {
url: "/register",
templateUrl: '/partials/auth/register.blade.php',
})
.state('login', {
url: "/login",
templateUrl: '/partials/tpl/login.html',
})
$locationProvider.html5Mode({
enabled: false
});
$stateProviderRef = $stateProvider;
$urlRouterProviderRef = $urlRouterProvider;
}])
.run(function($rootScope, $location, AuthenticationService, FlashService, MetaTags,$state ) {
console.log('ds');
$rootScope.$on('$stateChangeStart', function(event, next, current) {
event.preventDefault();
console.log('sd');
//if(!AuthenticationService.isLoggedIn()) {
// console.log(current);
// console.log(next);
//
//
//
// event.preventDefault();
// $state.go('login');
// FlashService.show("Please log in to continue.");
//}
//
});
}
)
我真正想要的只是在状态变化时控制日志字符串。 为什么第二个控制台不会触发stateChangeStart?
这令人沮丧。 我在另一个工作正常的的应用程序中具有完全相同的逻辑答案 0 :(得分:5)
要启用这些状态事件,请在项目中包含stateEvents.js文件,例如
<script src="stateEvents.js"></script>
并确保依赖于ui.router.state.events角度模块,例如,
angular.module("myApplication", ['ui.router', 'ui.router.state.events']
https://ui-router.github.io/ng1/docs/latest/modules/ng1_state_events.html
答案 1 :(得分:0)
似乎ui.router和ngRoute可能无法一起工作。摆脱ngRoute包和所有依赖行为,然后重试。