首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用模态实用工具类避免循环依赖?

使用模态实用工具类避免循环依赖?
EN

Stack Overflow用户
提问于 2019-03-29 16:58:02
回答 1查看 793关注 0票数 2

我有一个utilities类,它在我的应用程序中处理一些常见的事情,比如显示警报、加载旋转器和调制解调器。现在,在我的主页上,我试图调用utilities.openModal(),但是得到了一个循环依赖项,其中包含以下警告消息:

在循环依赖项中检测到ng警告: ng src/app/pages/users/add-entry/add-entry.page.ts -> src/app/services/utilities/utilities.service.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

openModal函数在utilities.service.ts上:

代码语言:javascript
复制
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导入:

代码语言:javascript
复制
import { Component } from '@angular/core';
import { UtilitiesService } from 'src/app/services/utilities/utilities.service';

utilities.service.ts进口:

代码语言:javascript
复制
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';
EN

回答 1

Stack Overflow用户

发布于 2019-03-29 19:19:08

这意味着在utilities.service.ts中导入了AddEntryPage,在add-entry.page.ts中导入了UtilitiesService,这将导致循环依赖。

基于您的代码,您似乎希望从AddEntryPage (导入服务)中打开AddEntryPage组件的模式。

如果您为其他函数导入了服务,最好分解该服务,例如创建另一个名为modalService的服务

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55422210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档