Angularjs 如果在ui路由器中条件匹配,如何更改url的部分?

Angularjs 如果在ui路由器中条件匹配,如何更改url的部分?,angularjs,angularjs-scope,angular-ui-router,angularjs-rootscope,Angularjs,Angularjs Scope,Angular Ui Router,Angularjs Rootscope,我的$stateProvider中有两种状态,即经过身份验证的用户访问url和公共访问url 我在公共访问中有一些url,问题是我需要阻止这些url访问经过身份验证的用户,并且需要用另一个url更改url 例如,假设, 是公共访问url, 如果经过身份验证的用户将访问此url,我需要更改为 我试着把解决办法当作下面的问题 我在状态提供程序中附加了参数,如 .state('admin-panel.public.jobadd', { url: '/pjobadd/:jobID', t

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

我在公共访问中有一些url,问题是我需要阻止这些url访问经过身份验证的用户,并且需要用另一个url更改url

例如,假设, 是公共访问url, 如果经过身份验证的用户将访问此url,我需要更改为

我试着把解决办法当作下面的问题

我在状态提供程序中附加了参数,如

.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。 我认为这不是一个有效的方法

有人能建议一种方法吗

检查此url。。。


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

我没有问题将参数传递给控制器。我想阻止访问登录用户的公共URL。如果登录用户试图通过URL访问,则应用程序需要重定向到已验证用户的相关URL。这意味着假设公共用户可以通过使用主机/pjobadd/1查看作业,我们有单独的、具有更多功能的“向已验证用户发送URL”来查看已验证的作业。因此,当登录用户尝试访问公共URL jobad时,我们需要重定向到经过身份验证的URL。您需要哪些代码我已经发布了这些代码,哪些代码是我已经更改了整个应用程序,或者您可以创建plunker?