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或类似的东西中。你的配置在我看来还不错,也许问题出在代码的其他地方