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 指令也不会重复运行。

相关内容

热门资讯

实测分享"如何下载科... 实测分享"如何下载科乐填大坑辅助器"开挂(软件)辅助软件的确有挂-透牌教程;亲,如何下载科乐填大坑辅...
七分钟辅助“微乐家乡游戏攻略”... 七分钟辅助“微乐家乡游戏攻略”开挂(透视)辅助透视切实教程-有挂讲解>>您好:软件加薇1367043...
科技揭秘"陕麻圈辅助... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
五分钟辅助“温常州茶苑辅助器下... 五分钟辅助“温常州茶苑辅助器下载”开挂(工具)辅助工具黑科技教程-有挂分析;亲,温常州茶苑辅助器下载...
热点讨论"微信小程序... 热点讨论"微信小程序欢乐辅助器免费下载"开挂(下载)辅助下载有挂规律-技巧教程 >>您好:软件加薇1...
十分钟辅助“对战互娱有辅助吗”... 对战互娱有辅助吗是一款专注玩家量身打造的游戏记牌类型软件,在对战互娱有辅助吗这款游戏中我们可以记录下...
玩家必看教程"威信茶... 玩家必看教程"威信茶馆辅助"开挂(神器)辅助神器真的有挂-解说技巧>>您好:软件加薇13670430...
两分钟辅助“老友跑得快辅助小说... 老友跑得快辅助小说最新章节开挂教程视频分享装挂详细步骤在当今的网络游戏中,老友跑得快辅助小说最新章节...
实测揭晓"福建天天开... 实测揭晓"福建天天开心攻略"开挂(安装)辅助安装真实有挂-解密教程;无需打开直接搜索加(薇:1367...
开挂辅助“天酷大厅辅助”开挂(... 开挂辅助“天酷大厅辅助”开挂(插件)辅助插件解密教程-有挂工具【无需打开直接搜索加薇13670430...