angularjs - 在 UI 路由器中用子 url 覆盖父 url (Angular)

标签 angularjs angular-ui-router angularjs-routing

这是我用于 ui-router 的配置:

.state('parent', {
    url: '/child1'
    controller: ParentController,
    abstract: true
})

.state('parent.child1', {
    url: ''
})

.state('parent.child2', {
    url: '/child2'
})

我想要实现什么?

我想要一个/child1 url,我想将其设置为默认值,因此我将父级设置为抽象,并将子级状态 url 设置为“空”。

所以我希望当用户访问 child2 状态时,父 url 被替换而不是附加它。我怎样才能做到这一点?

最佳答案

如果我理解正确,(如果我错了,请纠正我)您正在寻求设置路由服务来实现以下路由:

/ , /child1/child2并且您希望所有状态都与 ParentController 绑定(bind)

如果这是正确的,您可以通过以下方式实现此目的:

.state('parent', {
  url: '/',
  controller: ParentController,
})

.state('parent.child1', {
  url: '^/child1'
})

.state('parent.child2', {
  url: '^/child2'
})

例如,如果我们运行 https://localhost:3000我们可以这样导航:

parent/会给我们https://localhost:3000/

parent.child1/child1会给我们https://localhost:3000/child1

parent.child2/child2会给我们https://localhost:3000/child2

ParentController 将被所有状态调用。

关于angularjs - 在 UI 路由器中用子 url 覆盖父 url (Angular),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38745178/

相关文章:

Angular 嵌套路由器 socket 子项在路由器动画完成之前消失

AngularJS 未捕获的 ReferenceError : controller is not defined from module

javascript - 为什么使用 ui-router 时会出现重复的 div?

javascript - ng-class 已添加到自定义元素,但 css 样式未应用

javascript - Angular 1.5。如何使嵌入的模板绑定(bind)到组件范围

node.js - 在客户端重新启动socket.io

javascript - 页面的一部分作为 Angular 中的 subview

angularjs - Angular ui.router 动态 ui-sref

javascript - 在部分之间导航后保持选中复选框

javascript - Gulp-Coveralls 返回 422,找不到 TravisCI 构建