Javascript Angularjs动态更改$routeProvider的模块配置

Javascript Angularjs动态更改$routeProvider的模块配置,javascript,angularjs,angularjs-routing,Javascript,Angularjs,Angularjs Routing,我有一个网站使用angular的内置路由。当一个用户注销而另一个用户登录时,我将根据该用户的权限更改菜单中可见的内容。虽然这样做有效,但配置的路由仍然有效,因此用户可以使用浏览器的后退功能进行导航。另外,在页面加载时,我动态加载路由信息服务器端,以便angular只知道允许用户使用的路由。这会阻止用户使用浏览器返回功能进行导航,但需要刷新页面 是否可以动态更改$routeProvider的模块配置? 根据我的研究,答案是否定的,因为当模块运行时,提供程序不再可用。如果用户没有权限,您可以收听$l

我有一个网站使用angular的内置路由。当一个用户注销而另一个用户登录时,我将根据该用户的权限更改菜单中可见的内容。虽然这样做有效,但配置的路由仍然有效,因此用户可以使用浏览器的后退功能进行导航。另外,在页面加载时,我动态加载路由信息服务器端,以便angular只知道允许用户使用的路由。这会阻止用户使用浏览器返回功能进行导航,但需要刷新页面

是否可以动态更改$routeProvider的模块配置?


根据我的研究,答案是否定的,因为当模块运行时,提供程序不再可用。

如果用户没有权限,您可以收听
$locationChangeStart
并停止更改。试试这个:

$rootScope.$on('$locationChangeStart', function(event) {
   //if user does not have permission
       event.preventDefault();

});

这是正确的,您不能,但是您可以在状态更改上设置挂钩,验证用户凭据并执行redirections@DayanMoreno Leon我的下一步是在routeChangeStart中加入一个函数,将creds与route进行比较。谢谢你的理智检查。这就是我所做的,但我最终的解决方案是重新引导angular,以采用新的路由配置,而不是在客户端执行此检查。@Ben Felda:恐怕我们不能这样做。让我们看看是否有人能提供解决方案。