【问题标题】:Unable to resolve state in Angular ui.router when URL is "home/" instead of "home"当 URL 为“home/”而不是“home”时,无法解析 Angular ui.router 中的状态
【发布时间】:2016-09-06 18:22:00
【问题描述】:

下面是我的 ui.router 状态代码:

$urlRouterProvider.otherwise("/");

$stateProvider.state('account', {
      templateUrl: "/assets/views/app.html",
      abstract: true
      })
.state('account.home', {
    templateUrl: "/assets/views/index.html",
    url: '/home'
      })

当用户尝试访问 mydomain.com/ 时,状态解析为帐户。 但是当用户尝试访问 mydomain.com/home/ 时,该状态解析为无效状态,因此用户被重定向到 mydomain.com/ 而不是 account.home 状态。

预期结果:

网址:mydomain.com 以解析为帐户状态

网址:mydomain.com/ 以解析帐户状态

URL:mydomain.com/home 解析为 account.home 状态

URL:mydomain.com/home/ 解析为 account.home 状态

【问题讨论】:

    标签: angularjs angular-ui-router


    【解决方案1】:

    您可以在抽象状态 url 中定义 ui-view,然后您可以使用该视图使用嵌套状态。请参阅以下内容。

    $stateProvider
        .state('account', {
            abstract: true,
            url: "",
            template: '<div ui-view="access">',
        })
    .state('account.home', {
        url: '/home',
        views: {
            'access': {  
                templateUrl: '/assets/views/index.html'
            }
         }
    }
    

    你也可以定义这个

    <div ui-view="access">
    

    在你的 app.html 中也是如此。

    【讨论】:

    • 这并没有解决我的问题,你检查我的代码,“帐户”已经是我的 $stateProvider 中的一个抽象状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2019-05-11
    • 2020-03-08
    • 1970-01-01
    • 2020-07-06
    相关资源
    最近更新 更多