Angular指令应该在导航后不应重新运行
创始人
2024-10-30 23:00:36
0

要解决这个问题,你可以使用 ngOnDestroy() 生命周期钩子,用它来取消参考 Angular 指令的订阅。

简单的方式是创建一个集中的订阅器,以确保 Angular 管理它们:

@Injectable({ providedIn: 'root' })
export class SubscriptionManagerService implements OnDestroy {
  private subs: Subscription[] = [];

  add(...subs: Subscription[]) {
    this.subs.push(...subs);
  }

  ngOnDestroy() {
    this.subs.forEach(sub => sub.unsubscribe());
  }
}

在应用的根模块的 providers 数组中将它添加进去。现在,你的 Angular 指令可以注入 SubscriptionManagerService,然后调用 add 方法来订阅所有的源。

export class MyDirective implements OnInit, OnDestroy {
  private subs = new Subscription();

  constructor(private subscriptionManager: SubscriptionManagerService) {}

  ngOnInit() {
    this.subs.add(
      // your RxJS subscriptions here
    );
  }

  ngOnDestroy() {
    this.subs.unsubscribe();
  }
}

最后,确保你只使用你的集中的订阅器来订阅与 Angular 指令相关的所有订阅。这样,当导航发生时,所有的订阅将被自动取消,而 Angular 指令也不会重复运行。

相关内容

热门资讯

最强版wpk官网下载链接,we... 最强版wpk官网下载链接,wepoker辅助透视软件,一贯真的是有挂(有挂技巧)1、下载好wepok...
黑科技辅助挂!wepoker透... 黑科技辅助挂!wepoker透视脚本免费,德普之星透视辅助软件是真的吗,一直存在有挂(有挂存在)1、...
最强版哈糖大菠萝助手,poke... 最强版哈糖大菠萝助手,poker world辅助,本来真的是有挂(详细教程)运辅助工具,进入游戏界面...
2026版教程!sohoo开挂... 2026版教程!sohoo开挂辅助,智星德州辅助译码插件靠谱吗,一直是真的有挂(有挂辅助)智星德州辅...
最强版购买的wpk辅助在哪里下... 最强版购买的wpk辅助在哪里下载,德州真人透视脚本,竟然有挂(有挂方针)1、许多玩家不知道辅助怎么退...
规律辅助挂!佛手在线是不是有挂... 规律辅助挂!佛手在线是不是有挂,德扑之星透视软件免费入口官网,一直确实有挂(有挂详情)1、下载好德扑...
最强版wepoker私人局可以... 最强版wepoker私人局可以透视,sohoo竞技联盟辅助器,切实是真的有挂(有挂攻略)1、该软件可...
据权威媒体报道!佛手在线大菠萝... 据权威媒体报道!佛手在线大菠萝技巧,德普之星透视软件免费入口官网,本来是有挂(有挂技巧)1、用户打开...
最强版wepoker透视脚本视... 最强版wepoker透视脚本视频,wpk辅助软件,一贯存在有挂(讲解有挂)1、超多福利:超高返利,海...
近年来!wepoker私人局透... 近年来!wepoker私人局透视,智星菠萝透视,总是真的有挂(有挂详细)智星菠萝透视辅助器是一种具有...