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

相关内容

热门资讯

透视辅助!德普之星辅助功能如何... 透视辅助!德普之星辅助功能如何打开(透视)详细辅助解密教程(确实是真的有挂);1、超多福利:超高返利...
wepoke黑科技!德州专用扑... wepoke黑科技!德州专用扑克高科技(透视)原本真的有挂(详细辅助解说技巧);致您一封信;亲爱we...
透视黑科技(wepokE)we... 1、透视黑科技(wepokE)wepok软件透明挂(透视)详细辅助2025新版教程。2、wepok软...
透视计算!wepoke确实有挂... 透视计算!wepoke确实有挂,wepoke计算辅助,详细透视透明挂教程1、许多玩家不知道wepok...
透视辅助!hhpoker俱乐部... 透视辅助!hhpoker俱乐部是干嘛的(透视)往昔存在有挂(详细辅助技巧教程)关于hhpoker俱乐...
透视代打!hhpoker透视下... 透视代打!hhpoker透视下载链接在哪里(透视)详细辅助黑科技教程(都是真的是有挂);1、每一步都...
微扑克游戏辅助器!wpk ai... 微扑克游戏辅助器!wpk ai(透视)从来有挂(详细辅助第三方教程)是一款可以让一直输的玩家,快速成...
透视透视(WepOke)德扑之... 1、透视透视(WepOke)德扑之星怎么清楚数据(透视)详细辅助新2025版(UU poker、德扑...
透视教学!wepoke智能ai... 透视教学!wepoke智能ai,wepoke辅助有挂吗,详细透视德州教程;1、很好的工具软件,可以解...
透视脚本!wepoker辅助器... 透视脚本!wepoker辅助器是真的的吗(透视)详细辅助新2025教程(果然真的是有挂)进入游戏-大...