2015-10-25 67 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父状态分离,使其能够根据需要应用。