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

相关内容

热门资讯

教你教程!wepower软件靠... 教你教程!wepower软件靠谱(wepoke ai辅助)we-poker(其实真的有挂)1、玩家可...
微扑克wpk透视辅助!微扑克辅... 微扑克wpk透视辅助!微扑克辅助,wpk微扑克真的有辅助插件,wepoke教程(有挂揭秘)1)微扑克...
wpk德州透视辅助(WPK)w... wpk德州透视辅助(WPK)wpk ai是有(透视辅助)好像真的有挂(曝光教程)1、实时WPK开挂更...
wepoke黑科技!aa扑克平... wepoke黑科技!aa扑克平台的机制,德州ai软件购买(详细透视挂教程)相信很多朋友都在电脑上玩过...
wepower有外 挂!wep... wepower有外 挂!wepoke能赢嘛,wepoke计算辅助,第三方教程(有挂解密)1、这是跨平...
微扑克辅助器ios!wpk微扑... 微扑克辅助器ios!wpk微扑克外 挂事件(透视)其实有挂;微扑克辅助插件是一个在免局卡环境下运行的...
wpk ai辅助!wpk号一直... wpk ai辅助!wpk号一直输,WPK一直真的有挂,详细教程,(有挂攻略)1、WPK透视辅助简单,...
wepoke辅助!云扑克app... wepoke辅助!云扑克app辅助,微扑克wpk辅助存在(详细透视挂教程);亲们利用一分钟了解精致的...
wepoke辅助有挂!wepo... wepoke辅助有挂!wepoke软件收费是真的,wePOke都是真的有挂,wpk教程(有挂教程);...
微扑克系统发牌规律!微扑克ai... 微扑克系统发牌规律!微扑克ai技术(辅助挂)切实存在有挂;人气非常高,ai更新快且高清可以动的一个微...