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)原来真的是有... 透视辅助(WPK)原来真的是有挂(透视)wpk免费辅助(软件教程)所有人都在同一条线上,像星星一样排...
透视计算(WPK)原来是真的有... 透视计算(WPK)原来是真的有挂(透视)wpk辅助购买(规律教程)wpk辅助购买辅助器中分为三种模型...
辅助透视(WPK)确实真的有挂... 辅助透视(WPK)确实真的有挂(透视)wpk透视辅助方法(系统教程);1)wpk透视辅助方法辅助挂:...
透视能赢(WPK)一直是有挂(... 透视能赢(WPK)一直是有挂(透视)wpk作弊最怕三个东西(黑科技教程)小薇(透视辅助)致您一封信;...
透视玄学(WPK)其实真的有挂... 透视玄学(WPK)其实真的有挂(透视)wpk可以作弊吗(必备教程)1、每一步都需要思考,不同水平的挑...
透视辅助(WPK)一直有挂(透... 透视辅助(WPK)一直有挂(透视)wpk辅助购买(辅助教程);一、wpk辅助购买AI软件牌型概率发牌...
透视真的(WPK)一直真的有挂... 透视真的(WPK)一直真的有挂(透视)wpk有那种辅助吗(AI教程)1、完成wpk有那种辅助吗的残局...
透视实锤(WPK)都是真的有挂... 透视实锤(WPK)都是真的有挂(透视)wpk私人辅助(扑克教程)1、操作简单,无需注册,只需要使用手...
透视挂透视(WPK)果然是有挂... 透视挂透视(WPK)果然是有挂(透视)wpk透视辅助下载(微扑克教程);1、wpk透视辅助下载ai机...
透视软件(WPK)一直真的有挂... 透视软件(WPK)一直真的有挂(透视)wpk软件是真的吗(可靠教程);透视软件(WPK)一直真的有挂...