【问题标题】:What all could be the reasons for a NavigationCancel event to get triggered?触发 NavigationCancel 事件的所有可能原因是什么?
【发布时间】:2019-06-24 17:12:36
【问题描述】:

我在angular2 中订阅了路由器事件,当我控制事件时,我发现NavigationCancel 事件与reason: ""。很想知道NavigationCancel 被触发的所有原因。不仅有empty 的原因,而且总的来说。

【问题讨论】:

    标签: angular angular2-routing


    【解决方案1】:

    NavigationCancel 将在您尝试导航到路线并且导航路线子无法加载(CanLoad 守卫)或路线本身无法激活(CanActivate 守卫)时触发

    您可以在配置RouterModule 时使用{enableTracing : true} 来查看所有事件,并进一步分析。

    希望这会有所帮助!

    【讨论】:

    【解决方案2】:

    这已经很晚了,但我希望它可以帮助其他人,因为我也曾为此苦苦挣扎。

    所以,发生这种情况的另一个原因是导航事件被触发了两次。

    这发生在我身上是错误的,因为我有一个带有 routerLink 指令的组件,它有一个同名的输入绑定:

    我的组件类:

    @Input() routerLink: string[];
    

    我的组件模板:

    ...
    <a [routerLink]="routerLink">
    ...
    

    父组件模板是这样的:

    ...
    <my-component
       [routerLink]="somePath"
       ...
    >
    

    这实际上是在创建另一个 routerLink 指令绑定。 结果,导航事件几乎同时触发了两次,从而产生了NavigationCancel 事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2021-09-01
      相关资源
      最近更新 更多