AngularJS子路由始终使用$stateProvider重定向到其他路径
我有这个路由配置,问题是每当我访问子路由时,它总是重定向到AngularJS子路由始终使用$stateProvider重定向到其他路径,angularjs,routing,angular-ui-router,Angularjs,Routing,Angular Ui Router,我有这个路由配置,问题是每当我访问子路由时,它总是重定向到,否则。在这种情况下,哪个是/login $stateProvider .state('login', { url: '/login', templateUrl: 'views/login.html', controller: 'LoginController as loginCtrl', }) .state('reports', { abstract
,否则
。在这种情况下,哪个是/login
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'views/login.html',
controller: 'LoginController as loginCtrl',
})
.state('reports', {
abstract: true,
url: "/reports",
templateUrl: 'views/container.html',
})
.state('reports.create', {
url: '/reports-create',
templateUrl: 'views/reports.html',
controller: 'ReportsController as reportsCtrl',
});
$urlRouterProvider.otherwise('/login');
我已将/reports
设置为abstract:true
。这是因为我不希望用户访问/reports
,因此应该将他们重定向到/reports create
现在,每当用户访问/reports
或/reports create
,它们总是被重定向到/login
但是,如果我制作报告。创建到创建,我可以访问/reports create
,但我也可以访问/reports
,在这种情况下,我不应该访问/reports
现在,每当用户访问/reports或/reports创建时,它们总是被重定向到/login
您将无法访问/reports
,因为它是抽象的。此外,您还必须访问url上创建的报告:/reports/reports create
,因为抽象父状态将其url“前置”到子url。
请参阅此处的文档:
还要确保父状态在其模板中的某个地方有一个ui视图
,这是必需的,它是子状态模板将呈现到的地方(请查看我上面链接的文档)
还有一件事:我将我的子url从/reports create
重命名为简单的/create
,这样最终的url会更好:/reports/create
是的,我在html上有
。访问/reports
应在/login
页面上重定向,但/create
不应在其中发生。还有什么需要考虑的吗?您是否正在尝试/reports/create
,对吗?:)(因为您只需再次编写/create
)。如果是,那么我没有任何其他想法,创建一个例子来说明问题,例如在JSFIDLE或类似的东西中。你的配置在我看来还不错,也许问题出在代码的其他地方