$stateProvider には、認証済みユーザー アクセス URL とパブリック アクセス URL の 2 種類の状態があります。
パブリックアクセスにある種のURLがあります。これらのURLが認証されたユーザーにアクセスできないようにする必要があり、URLを別のものに変更する必要があります。
例 http://localhost:3000/#/pjobadd/1がパブリック アクセス URL であるとします。認証されたユーザーがこの URL にアクセスする場合、http://localhost:3000/#/jobadd/1として変更する必要があります。
私は以下のように解決策を取ろうとしています
私は状態プロバイダーのようなパラメーターを添付しました
.state('admin-panel.public.jobadd', {
url: '/pjobadd/:jobID',
templateUrl: 'app/public/jobadd.tmpl.html',
controller: 'PublicJobaddController',
resolve: {
jobAdd: ['Public', '$stateParams', function(Public,$stateParams) {
return Public.jobAdd($stateParams.jobID);
}]
},
data: {
requireChange: 'pjobadd'
}
})
そのrequireChangeをapp.jsで次のように使用しました
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
if (!Auth.isAuthenticated()){
var requireChange = toState.data.requireChange;
console.log(requireChange);
switch(requireChange){
case 'pjobadd':
$state.go('admin-panel.default.jobadd');
case 'psearch':
$state.go('admin-panel.default.search');
}
URLに渡されたパラメーターを追加する必要がある問題があり、 $state.go() も上記のURLにリダイレクトされません。私はそれが効率的な方法だとは思わない。
誰かがそれに方法を提案できますか???