私は[email protected]
にアップグレードし、必要な権限がない場合にユーザーを別の状態にリダイレクトする最良の方法を見つけようとしています。UI-Router 1.0はユーザーの役割に基づいてリダイレクトします
これは私が持っているものです。
.state('company_dashboard', {
url: '/dashboard',
templateUrl: 'dashboard.html',
controller: 'CompanyDashboardCtrl',
resolve: {
user: function(UserService) {
return UserService.getActiveUser();
},
company: function(UserService) {
return CompanyService.getActiveCompany();
},
permissions: function(CompanyService, user, company){
return CompanyService.getUserPermissions(company, user);
}
},
onEnter: function($state, permissions) {
if (permissions.canAccessDashboard === false)
return $state.go('company_landing_page');
}
})
上記の例は動作しますが、それは次のエラーログに記録:TransitionRejection(type: 2, message: The transition has been superseded by a different transition, detail: Transition#1(''{} -> 'company_landing_page'{}))
私はと思わせる、より良い方法があるはず。
質問resolve
の間に権限をチェックすることをお勧めしますか?
UPDATE:
が$state.target()
に$state.go()
を変更するには、コンソールエラーを取り除くために私を助けました。 This commentが助けてくれました。 質問は立てていますが、私はそれを正しい場所に行っていますか?
私は春や何かのバックエンドフレームワークによって構築されたテンプレートのパーミッションをチェックするために使用されていました。フロントエンドに対するパーミッションのチェックは誰もがコードを見ることができるので良くないと思います。 –