Angularjs 如果在ui路由器中条件匹配,如何更改url的部分?
我的$stateProvider中有两种状态,即经过身份验证的用户访问url和公共访问url 我在公共访问中有一些url,问题是我需要阻止这些url访问经过身份验证的用户,并且需要用另一个url更改url 例如,假设, 是公共访问url, 如果经过身份验证的用户将访问此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
.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?