javascript - 在 ui-router 中设置抽象嵌套状态的默认子项

标签 javascript angularjs angular-ui-router url-routing

我使用ui-router
这是我的嵌套状态:

$stateProvider
.state('books', {
  abstract: true,
  url: '/books',
  controller: 'BooksCtrl',
  templateUrl: 'contents/books.html'
})
.state('books.top', {
  url: '/top',
  templateUrl: 'contents/books-top.html'
})
.state('books.new', {
  url: '/new',
  templateUrl: 'contents/books-new.html'
});

如何将 books.new 状态设置为 books 抽象状态的默认子状态,然后当您点击 /books ui-router 重定向到 /books/new?

最佳答案

a working example

我们可以使用内置功能。 1) 默认是具有空 url 的子状态:

$stateProvider
    .state('books', {
      abstract: true,
      url: '/books/new',
      controller: 'BooksCtrl',
      ..
    })
    .state('books.new', {
      //url: '/new',
      url: '',
      ...
    })
    .state('books.top', {
      url: '^/books/top',
      ...
    });

并且 2) 为了保持 /books 就位,我们可以使用重定向

  $urlRouterProvider.when('/books', '/books/new');

这些链接将按预期工作:

// href
<a href="#/books">
<a href="#/books/new">
<a href="#/books/top">
//ui-sref
<a ui-sref="books.top">
<a ui-sref="books.new">

检查 it here

关于javascript - 在 ui-router 中设置抽象嵌套状态的默认子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33036527/

相关文章:

javascript - 在 Stencil 中初始化变量的位置

javascript - Angular UI-Router 嵌套 View

javascript - 另一个里面的 ui-view 不显示

javascript - 使用 socket.io 和 Express JS 的聊天应用程序

javascript - 在 Amcharts 中动态改变 valueAxis

html - angularJs中的条件表行

angularjs - 如何从 Protractor 中的元素获取父级中的类?

javascript - 如何在 ui-router AngularJS 中使用组件模板?

javascript - 如何在ipad上模拟点击和拖动操作?

javascript - 从动态数据生成 AngularJS UI 模板