【问题标题】:nested route does not load its component and does not route to main route嵌套路由不加载其组件,也不路由到主路由
【发布时间】:2016-06-08 04:05:37
【问题描述】:

当使用路由子路由it does not load the component due to the nature of the component 重新加载页面时,它甚至不会路由回主路由。首先,这应该由我处理还是由角度来处理?

更新: Hashstrategy 没有按照第二个问题的预期方式工作。 如果是第一个,我有路线 /users/... 和一个孩子 /users/vote 。重新加载 /users 时,它会转到 /login,但是当重新加载 /users/vote 时,它不会(自然地)重新加载到该组件,也不会转到 /login

更新

@RouteConfig([
  {path: '/vote', component: VoteComponent, name: 'VoteCmp',useAsDefault: true },
  {path: '/getapproval', component: GetapprovalComponent, name: 'GetapprovalCmp' },
  {path: '/userresults', component: ResultsComponent, name: 'UserresultsCmp' }
])
@Component({
  selector: 'users',
....
 directives: [ROUTER_DIRECTIVES, RouterLink]
})

export class UsersComponent{

    constructor(private _userdetails: Userdetails, private _router: Router){
      if (this._userdetails.usertypeDetails() === "" || this._userdetails.isLoggedin() === false){
          this._router.navigate( ['HomeCmp'] );
      }
      if(this._userdetails.usertypeDetails() === 'admin'){
          this._router.navigate( ['AdminCmp'] );
      }
  }
}

我的投票组件

@Component({
  selector: 'vote',
  template: `<div>Vote Component</div>`,
})
export class VoteComponent {

constructor(private _userdetails: Userdetails, private _router: Router){
      if (this._userdetails.usertypeDetails() === "" || this._userdetails.isLoggedin() === false){
          this._router.navigate( ['HomeCmp'] );
      }
      if(this._userdetails.usertypeDetails() === 'admin'){
          this._router.navigate( ['AdminCmp'] );
      }
}

}

我的 boot.ts 有这个

bootstrap(MainComponent,[Userdetails,ROUTER_PROVIDERS, Location, provide(LocationStrategy, {useClass: HashLocationStrategy}, ROUTER_BINDINGS, bind(APP_BASE_HREF).toValue('/')]);

【问题讨论】:

  • 看起来像 stackoverflow.com/questions/31415052/… 的副本。如果不是,请提供更多信息。
  • HashLocationStrategy 应该解决第一个问题。它与“否则”无关。其实我不知道这个问题是关于什么的。请添加一些代码来显示您实际尝试完成的工作。
  • 由于组件的性质它不会(自然地)重新加载到该组件是什么意思?
  • 如果用户名设置为空白(当您重新加载页面时),我已经创建了组件以重定向到 /users 和 /users/vote 中的登录页面。 /users 工作正常,但它的子 /users/vote 不重定向。
  • 尝试将&lt;base href="/"&gt; 添加到 html 中,APP_BASE_HREF 可能存在错误。我有similar issue

标签: angular parent-child reload router


【解决方案1】:

正如 cmets 中所述,APP_BASE_HREF 和嵌套路由(可能是 issue #5782)存在错误。

解决方案(目前)是在主 html 中添加基本标记:

<base href="/">

【讨论】:

    猜你喜欢
    • 2019-01-03
    • 2020-09-22
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2020-07-18
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多