如何为所有模块

时间:2016-12-13 07:08:15

标签: javascript jquery css angularjs html5

我在每个模块文件中都有一个config函数,如下所示

app.js

中的

config(['$locationProvider', '$routeProvider', 
       function($locationProvider, $routeProvider) {
         $routeProvider.otherwise({redirectTo: '/home'});
 }]);
home.js

中的

config(['$routeProvider','ChartJsProvider', 
       function ($routeProvider,ChartJsProvider) {
          $routeProvider.when('/home', {
            templateUrl: 'home/home.html',
            controller: 'HomeCtrl'
          });   
}])

现在我想写一个$routeProvider.whenLoggedIn函数,比如

config(['$locationProvider', '$routeProvider', 
   function($locationProvider, $routeProvider) {

     $routeProvider.whenLoggedIn=function(){
        console.log('Do something');
     }

     $routeProvider.otherwise({redirectTo: '/home'});

}]);

当我编写代码如下面

     $routeProvider.whenLoggedIn('/profile', {
        templateUrl: 'home/profile.html',
        controller: 'ProfileCtrl'
      });  

我想调用函数whenLoggedIn。请让我知道如何在共同位置编写whenLoggedIn函数,而不是在每个模块config函数中编写此函数

1 个答案:

答案 0 :(得分:0)

您需要在app.config中添加$stateProvider

 .config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $locationProvider) {

//$locationProvider.html5Mode(true).hashPrefix('*');

$urlRouterProvider.otherwise('/account/login');

$stateProvider

    .state('account', {
        abstract: true,
        url: '/account',
        cache: false,
        template: '<div ui-view></div>',
    })
  //login
  .state('account.login', {
    url: '/login',
    controller: 'LoginCtrl',
    templateUrl: 'app/Account/login.html',
  })

      //forgot password
  .state('account.forgotpassword', {
    url: '/forgotpassword',
    controller: 'ForgotPswdCtrl',
    templateUrl: 'app/Account/forgotpassword.html',
  })
}])