当前位置: 首页 > 面试题库 >

当用户使用UI-Router转换到其父状态时,将其定向到子状态

楚灿
2023-03-14
问题内容

考虑以下:

.state('manager.staffList', {url:'^/staff?alpha', templateUrl: 'views/staff.list.html', data:{activeMenu: 'staff'}, controller: 'staffListCtrl'})
.state('manager.staffDetail', {url:'^/staff/{id}' , templateUrl: 'views/staff.html', data:{activeMenu: 'staff'}, controller: 'staffDetailsCtrl'})
  .state('manager.staffDetail.view', {url:'/view',  templateUrl: 'views/staff.details.html', data:{activeMenu: 'staff'}})
    .state('manager.staffDetail.view.schedule', {url:'/schedule', templateUrl:'views/staff.view.schedule.html', data:{activeMenu: 'staff'}})
    .state('manager.staffDetail.view.history', {url:'/history' , templateUrl:'views/staff.view.history.html', data:{activeMenu: 'staff'}})
    .state('manager.staffDetail.view.log', {url:'/log', templateUrl:'views/staff.view.log.html', data:{activeMenu: 'staff'}})
    .state('manager.staffDetail.view.files', {url:'/files', templateUrl:'views/staff.view.files.html', data:{activeMenu: 'staff'}})
  .state('manager.staffDetail.edit', {url:'/edit',  templateUrl: 'views/staff.edit.html', data:{activeMenu: 'staff'}})

如果转到domain.com/staff/1234/view,我如何默认为manager.staffDetail.view.schedule子状态?


问题答案:
  1. 首先,将属性添加到的'manager.staffDetail.view'状态 abstract:true 。这不是必需的,但是您要设置它,因为您永远不会直接进入此状态,因此总是会进入其子状态之一。

  2. 然后做 一个 如下:

    • 'manager.staffDetail.view.schedule'州提供一个 空URL 。这将使其与父状态url匹配相同的url,因为它不会向父url附加任何内容。

.state('manager.staffDetail.view.schedule', {url:'', ...

* 或者,如果要保持默认子路由的url不变,则在module.config中设置 **重定向** 。此处的代码会将的任何位置重定向`'/staff/{id}/view'`到的位置`'/staff/{id}/view/schedule'`:

$urlRouterProvider.when('/staff/{id}/view', '/staff/{id}/view/schedule');



 类似资料:
  • 问题内容: 我正在创建一个基于标签的页面,其中显示了一些数据。我在AngularJs中使用UI-Router来注册状态。 我的目标是在页面加载时打开一个默认选项卡。每个选项卡都有子选项卡,并且我想在更改选项卡时打开默认的子选项卡。 我正在使用函数进行测试,并且正在使用内部,但是由于循环效应问题(在state.go上对其子状态调用其父状态,依此类推,然后变成循环),它似乎无法正常工作。 在这里,我创

  • 本文向大家介绍angular-ui-router 使用$ state.go在状态之间转换,包括了angular-ui-router 使用$ state.go在状态之间转换的使用技巧和注意事项,需要的朋友参考一下 示例 $state.go 是速记法 $state.transitionTo $state.go(toState [,toParams] [,options]) 此方法自动将您的选项设置为{

  • 本文向大家介绍angular-ui-router 使用$ state.transitionTo在状态之间转换,包括了angular-ui-router 使用$ state.transitionTo在状态之间转换的使用技巧和注意事项,需要的朋友参考一下 示例 用于$state.transitionTo将一种状态转变为另一种状态。这是一种低级过渡方法,$state.go是内部最常用的推荐方法。 $st

  • 问题内容: 使用onEnter重定向到状态时,如果新状态是当前状态的子级,则会发生无限循环。 例: 什么时候: 被调用后,状态被重新初始化,导致其被再次调用=无限循环。 但是,如果重定向状态为: 不会发生此问题。我假设父状态正在重新初始化,但是为什么呢? 为什么在子状态上调用父状态会被重新初始化? 那么,您将如何处理重定向到子状态? 问题答案: 1)为什么在子状态上调用.go时会重新初始化父状态?

  • 问题内容: 我正在做一个文档编辑器。文档可以是Type A或TypeB。可以通过URL通过文档ID对其进行访问,但是如果文档是A或B类型,则该ID不能使它们清晰可见。 因此,我需要按id加载文档,根据其数据确定其类型,然后将其传递给TypeAController或TypeBController。 现在,使用ui-router,我有类似以下内容: 加载状态将加载文档,确定其类型,然后进入下一个状态。

  • 问题内容: 在我正在开发的一个有角度的应用程序中,我希望有一个抽象的父状态,该状态必须解析其所有子状态的某些依赖关系。具体来说,我希望所有要求经过身份验证的用户的状态都必须从某些authroot状态继承该依赖项。 我遇到了无法始终解决父依赖关系的问题。理想情况下,我想让父状态检查用户是否仍自动登录到任何子状态。在文档中,它说 子状态将从父状态继承已解析的依赖项,并可以将其覆盖。 我发现仅当我从父级