angular.module('myApp', ['ui.router', 'ui.router.state.events'])
    .controller('myCtrl', function ($scope) {
        let vm = this
    })
    .config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
        //设置路由初始页面
        $urlRouterProvider.otherwise('orderList');
        //路由配置
        $stateProvider
            .state('index', {
                url: '/index',
                template: '<div><h2>Route1</h2></div>',
            })
            .state('login', {
                url: '/login',
                template: '<div><h2>Route2</h2></div>',
            })
            .state('dashboard', {
                url: '/dashboard',
                template: '<div><h2>Route3</h2></div>',
            })
    }])
    .run(['$rootScope', function ($rootScope) {
        // 监听路由开始时触发
        $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
            //do something
            console.log(1);
            // event 该事件的基本信息
            // toState 当前路由的基本信息,比如路由名称,url,视图的控制器,模板路径等
            // toParams 当前路由的参数
            // fromState 上一个路由的基本信息,比如路由名称,url,视图的控制器,模板路径等
            // fromParams 上一个路由的参数
        });
        // 路由成功时触发
        $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
            //do something
            // event 该事件的基本信息
            // toState 当前路由的基本信息,比如路由名称,url,视图的控制器,模板路径等
            // toParams 当前路由的参数
            // fromState 上一个路由的基本信息,比如路由名称,url,视图的控制器,模板路径等
            // fromParams 上一个路由的参数
        });
        // 路由错误时触发
        $rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {
            //do something
            // event 该事件的基本信息
            // toState 当前路由的基本信息,比如路由名称,url,视图的控制器,模板路径等
            // toParams 当前路由的参数
            // fromState 上一个路由的基本信息,比如路由名称,url,视图的控制器,模板路径等
            // fromParams 上一个路由的参数
            // error 错误信息
        });
    }]);