【发布时间】:2012-10-20 15:02:05
【问题描述】:
我已经配置了一些基本路由,所有用户在登录前都可以使用:
App.config(function ($routeProvider) {
$routeProvider.
when('/login', { templateUrl: 'views/login.html', controller: PageStartCtrl.Controller }).
otherwise({ redirectTo: '/login' });
});
所以用户唯一能做的就是登录。用户登录后,我想注册额外的路由,如下所示:
$http
.post('api/Users/Login', { User: userName, Password: userPassword })
.success(function (response : any) {
App.config(function ($routeProvider) {
$routeProvider
.when('/dashboard',
{ templateUrl: 'part/dashboard.html',
controller: DashboardCtrl.Controller });
});
但是,我想我应该只调用一次 .config 方法,因为 $routeProvider 是全新的实例,对 /login 路由一无所知。进一步调试表明,解析视图更改时使用了 $resourceProvider 的第一个实例。
Q:以后有办法注册路由吗?
Add routes and templates dynamically to $routeProvider 的解决方案可能有效,但非常难看(涉及全局变量 nastyGlobalReferenceToRouteProvider)。
【问题讨论】:
标签: dynamic configuration url-routing angularjs deferred