2015-10-25 106 views
2

我在我的應用程序下面父路由:AngularJS路由器的UI決心異常

 .state('app',{ 
      url: '/app', 
      templateUrl: 'views/app.html', 
      resolve: loadSequence('modernizr','moment'), 
      abstract: true, 
      css:['assets/css/theme-1.css'], 
      resolve: { 
       loginRequired: loginRequired 
      } 

     }) 

的決心定爲父母,所以所有的孩子將繼承loginRequired。我如何設置一個例外情況給家長中的一個,其中loginRequired可以忽略。以下是我的孩子路線。

.state('app.passwordreset',{ 
       url: '/app/reset/:token', 
       templateUrl: 'views/app_resetpass.html', 
       resolve: loadSequence('modernizr','moment','resetCtrl'), 
       css:['assets/css/theme-1.css'] 

      }) 

謝謝!!

回答

0

你可以做到這一點的一種方法是插入一個只處理登錄解析的中間狀態。例如:

.state('app', { ... }) 
.state('app.restricted', { 
    abstract: true, 
    url: '', 
    template: '<div ui-view=""></div>', 
    resolve: { 
     loginRequired: loginRequired 
    } 
}) 
.state('app.restricted.somechild', { ... }) 
.state('app.passwordreset', { ... }); 

這樣,需要進行身份驗證只是需要國家名稱前插入app.restricted任何孩子。您基本上將解析要求與app父狀態分離,使其能夠根據需要應用。