AngularDI循环引用(circularreference)在订阅时出现
创始人
2024-10-24 13:01:18
0

一种可行的解决方法是将依赖注入(DI)延迟,避免在组件构造函数中直接注入。下面是一个示例:

// service1.service.ts import { Injectable } from '@angular/core'; import { Service2 } from './service2.service';

@Injectable() export class Service1 {

constructor() { }

doSomething() { console.log('Service 1 does something'); }

service1Method() { console.log('Called service 1 method'); } }

// service2.service.ts import { Injectable } from '@angular/core'; import { Service1 } from './service1.service';

@Injectable() export class Service2 {

constructor( private service1: Service1 ) { }

doSomething() { console.log('Service 2 does something'); this.service1.service1Method(); } }

// app.component.ts import { Component } from '@angular/core'; import { Service1 } from './service1.service';

@Component({ selector: 'app-root', template: '' }) export class AppComponent { constructor() {}

onClick() { const service1 = new Service1(); // 延迟 DI service1.doSomething(); } }

在这个示例中,Service2 依赖于 Service1,但是 Service1 不需要依赖于 Service2。因此,我们可以将 Service1 作为一个参数传递给 Service2 的方法或者将 Service1 实例化并调用其中的方法。

在 AppComponent 中,我们也将依赖注入延迟到了点击按钮时才实例化 Service1。这样可以避免在组件构造函数中直接注入,从而避免循环引用的问题。

相关内容

热门资讯

玩家必用!wepoker的辅助... 玩家必用!wepoker的辅助器,wepoker能不能透视,线上教程(有挂辅助);小薇(透视辅助)致...
热点推荐!德普之星辅助器,哈糖... 热点推荐!德普之星辅助器,哈糖大菠萝可以开挂吗,2025教程(有挂攻略)准备好在哈糖大菠萝可以开挂吗...
解密关于!aapoker透视脚... 解密关于!aapoker透视脚本入口,wepoker有什么规律,插件教程(有挂透视)1、点击下载安装...
今日科普!wpk辅助软件,hh... 今日科普!wpk辅助软件,hhpoker有没有作弊辅助,系统教程(有挂攻略)这是由厦门游乐互动科技有...
揭秘一下!wepoker辅助脚... 揭秘一下!wepoker辅助脚本,hhpoker底牌透视脚本,解密教程(有挂教程);人气非常高,ai...
专业讨论!hhpoker的辅助... 专业讨论!hhpoker的辅助是真的吗,hhpoker免费透视脚本,黑科技教程(有挂技巧)是由北京得...
科普分享!wepoker安装教... 科普分享!wepoker安装教程,德州机器人代打脚本,黑科技教程(有挂透视);小薇(透视辅助)致您一...
实测揭晓!wepoker透视苹... 实测揭晓!wepoker透视苹果系统,wepoker怎么设置盖牌,详细教程(有挂教程)1、玩家可以在...
攻略讲解!聚星ai辅助工具收费... 攻略讲解!聚星ai辅助工具收费多少,sohoopoker辅助,技巧教程(有挂神器);支持多人共享记分...
一分钟揭秘!aa poker辅... 这是一款非常优秀的wepoker私人定制透视 ia辅助检测软件,能够让你了解到wepoker私人定制...