Angular ui-router...显示默认选项卡

2023-12-12

我抵达bookDetails状态形成一些其他链接。这里bookDetails州的模板有不同的链接tabs(或模板)。及相关控制器EditBookController有一个 json 文件,我使用它以不同的方式构建表单tabs与像这样的国家bookDetails.basic and bookDetails.publisher其中使用父级EditBookController。运行良好。如何直接显示默认值bookDetails.basic而不是让用户点击链接?如果我做bookDetailsAbstract(abbstract:true) 并提供一个空链接bookDetails.basic我收到以下错误Cannot transition to abstract state 'bookDetails'

    $urlRouterProvider.otherwise('/home');

    $stateProvider
    .state('home', {              
              url:'/home',
              controller: 'HomeController',
              templateUrl: '/static/publisher/views/Publisher_Home_Template.html'
          })
    .state('books', {
              url:'/books',
              controller: 'BooksController',
              templateUrl: '/static/publisher/views/Book_Listing_Template.html'
          })          
    .state('bookDetails', {
              url : '/books/:b_id',                

              controller: 'EditBookController',                  
              templateUrl: '/static/publisher/views/Product_Page_Template.html'
          }) 

    .state('bookDetails.basic', {
              url : '/basic',                  
              templateUrl: '/static/publisher/views/tab1.html'
          }) 

    .state('bookDetails.publisher', {
              url : '/publisher',                  
              templateUrl: '/static/publisher/views/tab2.html'
          })       

一个有类似问题的笨蛋。但代码不同单击表单后,它应该出现在个人资料表单上。


我创建工作示例在这里

还有类似的问题:在 AngularJS 中使用 UI-Router 将状态重定向到默认子状态

解决方案来自一个很酷的“评论”与使用重定向的问题相关.when() (https://stackoverflow.com/a/27131114/1679310) and 非常酷的解决方案(作者:Chris T,但原帖作者:yahyaKacem)

https://github.com/angular-ui/ui-router/issues/1584#issuecomment-75137373

在状态定义中,我仅添加了一项设置bookDetails状态,:redirectTo: 'bookDetails.basic',。我们来看一下:

$urlRouterProvider.otherwise('/home');

$stateProvider
.state('home', {              
          url:'/home',
          controller: 'HomeController',
          templateUrl: '/static/publisher/views/Publisher_Home_Template.html'
      })
.state('books', {
          url:'/books',
          controller: 'BooksController',
          templateUrl: '/static/publisher/views/Book_Listing_Template.html'
      })          
.state('bookDetails', {
          // NEW LINE
          redirectTo: 'bookDetails.basic',
          url : '/books/:b_id',
          controller: 'EditBookController',                  
          templateUrl: 'static/publisher/views/Product_Page_Template.html'
      }) 

.state('bookDetails.basic', {
          url : '/basic',                  
          templateUrl: '/static/publisher/views/tab1.html'
      }) 

.state('bookDetails.publisher', {
          url : '/publisher',                  
          templateUrl: '/static/publisher/views/tab2.html'
      })  

现在 - 只需这几行就能创造奇迹:

app.run(['$rootScope', '$state', 
 function($rootScope, $state) {

  $rootScope.$on('$stateChangeStart',
    function(evt, to, params) {
      if (to.redirectTo) {
        evt.preventDefault();
        $state.go(to.redirectTo, params)
      }
    }
  );
}]);

这样我们就可以使用默认重定向来调整任何状态...检查一下here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular ui-router...显示默认选项卡 的相关文章

随机推荐

  • 在ionic2中设置TDD

    我遵循了 Joshua Moroney 关于 Ionic2 和 TDD 的教程 但在尝试调试发生的错误时遇到了困难 核心示例是这个 import TestBed ComponentFixture async from angular cor
  • OpenGL ES 2.0 纹理在某些设备上不显示

    我找到了一个 Android 3D 图形框架 名为Rajawali我正在学习如何使用它 我遵循了最基本的教程 即使用 1024x512 大小的 jpg 图像作为纹理渲染 shpere 对象 它在 Galaxy Nexus 上运行良好 但在
  • 如何让程序使用 Python GUI 中的输入框等待输入?

    这是我用来启动程序主要部分的函数的代码 但是我想要某种循环或创建十个问题的东西 但在进入下一个问题之前等待来自输入框的输入 有任何想法吗 def StartGame root Tk root title Maths Quiz Trigono
  • 使用 Xcode 4.2 ios 5.0 构建的应用程序安装在装有 ios 4.3.5 的 iPhone 上时崩溃

    我有一个应用程序将不再在 ios 4 x 上构建 上周它运行良好 现在我可以确认有 2 位使用旧版 ios 的人无法在 Test Flight 上启动该应用程序 1 人 ios 4 3 x 无法再在 Xcode 中构建应用程序 调试器输出如
  • 调试代码优先的实体框架迁移代码

    我首先在我的网站中使用实体框架代码 我只是想知道是否有任何方法可以调试迁移代码 你知道 比如设置断点之类的 我正在使用包管理器控制台来更新数据库Update Database Thanks 我知道 EF Code First Migrati
  • setScrollable 不适用于 NSTextFieldCell

    我希望我的每个表格单元格都可以滚动 因为它是可编辑的 我正在使用 self nsChildTextFieldObj NSTextFieldCell alloc init self nsChildTextFieldObj setControl
  • 选择多个选项

    为了一些看似简单的事情而把我的头撞到墙上 这里是
  • R Markdown 中的图形与 html 输出的交叉引用不起作用

    我想展示对我使用 R Markdown 创建的 HTML 文档中的图片的良好交叉引用 然而 即使我跟着关于交叉引用的书本部分 我无法获得在最终 HTML 输出中显示的引用 我在 R Studio 工作 如果有帮助的话 Rmd 文件 titl
  • 列复制并粘贴到行中

    我有一个包含以下内容的文件 sensor write reg client 0x57 0x00 sensor write reg client 0x58 0x00 sensor write reg client 0x59 0x00 sens
  • 将.c文件重命名为.cpp,导入Cython库失败

    我有一个正在运行的 Cython 程序 其中包含一些 C 库和自定义 C 代码 最近 我不得不将我的项目切换到 C 所以我将所有 C 代码重命名为 cpp Cython 编译良好并生成了 so文件 但是 当我尝试在 Python 中导入库时
  • 从现有按钮创建按钮数组(集合)

    有没有一种简单的方法可以从表单上的现有按钮创建按钮集合 在 c 中 我的表单上已经有一系列按钮 我想使用索引来访问它们 例如 myButtonArray 0 ForeColor Do something with it 这可以做到吗 编辑
  • 如何在c中获取时间戳

    我想获取我登录 c 的时间戳 我写了一个函数来获取时间戳 但是当我返回变量时我得到不同的值 My code include
  • 如何使用 Android SDK 和 AVD 管理器下载 Google API(因为它提供 SHA-1 MessageDigest 不可用)?

    我无法使用 Android SDK 和 AVD 管理器下载 Google API 每当尝试时 我都会收到以下错误 SHA 1 MessageDigest 不可用 有什么想法吗 我找到了在 Windows XP 环境中执行此操作的解决方法或正
  • Python:退出for循环?

    我对 SO 做了一些研究 并且知道有人提出了许多类似的问题 但我无法完全得到答案 不管怎样 我正在尝试构建一个库来使用 塞萨尔数字 技术 加密 字符串 这意味着我必须获取该字符串并将每个字母替换为字母表中 X 位置之外的另一个字母 我希望这
  • boost:asio::read 或 boost:asio::async_read 超时

    是的 我知道对此有一些疑问time out in boost asio 我的问题可能太简单了asio大伙在这里解决 我在用boost asio在 TCP 协议上以尽可能快的速度通过网络连续循环读取数据 跟随功能ReadData 不断接到工作
  • jsf 嵌入复合组件后如何禁用 ViewHandler 中的元素?

    如果满足某些条件 我将使用 ViewHandler 阻止任何访问页面上的所有输入元素 这对于 主 xhtml 文件中的输入元素非常有效 但复合组件中的输入元素不会被阻止 我认为这与 JSF 仅在我的 ViewHandler 完成其工作后才嵌
  • 为什么当 dir="rtl" 时表格边距会出错?

    when I change the page direction to rtl the table margins is go incorrect as in this picture but when I only remove the
  • CSS 类特异性顺序

    我定义了自己的 CSS 类 my ui table td border width 1px border 0 padding 5px 10px border style hidden border color inherit 默认 Prim
  • Meteor - 为什么我应该尽可能使用 this.userId 而不是 Meteor.userId() ?

    判断从这条评论作者 David Glasser 在 GitHub 问题中 this userId是主要 API 并且Meteor userId 是 JavaScript 新手的语法糖 他们可能还不了解成功使用它的细节 看来我们应该使用thi
  • Angular ui-router...显示默认选项卡

    我抵达bookDetails状态形成一些其他链接 这里bookDetails州的模板有不同的链接tabs 或模板 及相关控制器EditBookController有一个 json 文件 我使用它以不同的方式构建表单tabs与像这样的国家bo