我有一个utilities
类,该类处理整个应用程序中的常见问题,例如显示警报,加载微调框和模式。现在,我正在首页上尝试调用utilities.openModal()
,但是由于以下警告消息而导致循环依赖:
[ng]警告:已检测到循环依赖项:
[ng] src / app / pages / users / add-entry / add-entry.page.ts-> src / app / services / utilities / utilities.util.ts-> src / app / pages / users / add-entry / add-entry.page.ts
[ng]警告:已检测到循环依赖项:
[ng] src / app / services / utilities / utilities.service.ts-> src / app / pages / users / add-entry / add-entry.page.ts-> src / app / services / utilities / utilities.service.ts
utilities.service.ts上的openModal函数:
openModal(page, enterAnimation = null, leaveAnimation = null) {
// Create modal
this.modalCtrl.create({
component: page,
enterAnimation: enterAnimation,
leaveAnimation: leaveAnimation,
componentProps: {
utilities: UtilitiesService
}
}).then(m => m.present());
}
openEntryModal() {
this.openModal(AddEntryPage);
}
我只用this.utilities.openEntryModal()
在主页组件上调用它,一旦模式打开,它就会引发循环依赖警告。任何想法为什么会这样?我有一个大概的主意,但无法查明。
add-entry.page.ts导入:
import { Component } from '@angular/core';
import { UtilitiesService } from 'src/app/services/utilities/utilities.service';
utilities.service.ts导入:
import { Injectable } from '@angular/core';
import { ModalController, LoadingController } from '@ionic/angular';
import { AnimationsService } from 'src/app/services/animations/animations.service';
import { AddEntryPage } from 'src/app/pages/users/add-entry/add-entry.page';
答案 0 :(得分:0)
这意味着在utilities.service.ts
中您导入了AddEntryPage
,在add-entry.page.ts
中您导入了UtilitiesService
,这将导致循环依赖
根据您的代码,您似乎想从AddEntryPage
(已导入服务)中打开AddEntryPage
组件的模式
如果您将服务导入其他功能,最好将其分解,例如,创建另一个名为modalService
的服务