0

我的 $stateProvider 中有两种状态,分别是经过身份验证的用户访问 url 和公共访问 url。

我在公共访问中有某种 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'
    } 
})

并在 app.js 中使用requireChange如下

$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 的问题。我认为这不是有效的方法。

任何人都可以建议一种方法吗???

4

1 回答 1

0

检查这个 url ... 如何使用 ui-router 中的 ui-sref 将参数传递给控制器

你能在这里提供你的代码吗?给我一些关于你的要求的更清楚的信息。

于 2015-12-11T12:24:46.023 回答