子状态在 UI-Router 的嵌套路由中加载父状态 templateUrl

Child state loads parent state templateUrl in nested routes of UI-Router

我正在使用 UI-Router 模块进行路由。我有 2 个状态,路由器应该根据嵌套路由规则将 url 与它们匹配:

// Dashboard
.state('dashboard', {
    url: "/dashboard",
    templateUrl: "dashboard/views/index.html",
    controller: "DashboardController",
    ...
})

// Users
.state('users', {
    url: "/users",
    templateUrl: "users/views/index.html",
    controller: "UsersController",
    ...
})

// Single User
.state('users.id', {
    url: "/{id:(?:[a-z0-9_-]{3,16})}",
    templateUrl: "users/views/show.html",
    controller: "UserController",
    ...
})

我也设置了默认路由:

$urlRouterProvider.otherwise("/dashboard");

问题:

当我转到 http://127.0.0.1:8000/app/#/users/testuser123 时,它显示 index.html 来自 users 状态而不是 show.html 来自 users.id 状态。有什么问题?

如果调用 http://127.0.0.1:8000/app/#/users/testuser123

,则应在 users.id 的 url 定义中添加 users
.state('users.id', {
    url: "/users/{id:(?:[a-z0-9_-]{3,16})}",
    templateUrl: "users/views/show.html",
    controller: "UserController",
    ...
})