javascript - 如何在服务可用的所有模块(页面)中都可用的服务中实现 Ionic 模式?
问题描述
我有一个 AppModule 的辅助模块,在这种情况下,它称为 DriverModule,在该模块中,我在提供程序数组中添加了 DriversService 服务。在 DriversModule 中,我有使用惰性模块收费的子路由。
该服务在 DirverModule 下的所有页面中运行良好。
我的问题是,当我尝试将模式放入在 DriversModule 的所有子页面上运行的该服务中时,我收到此错误:
ERROR Error: Uncaught (in promise): Error: No component factory found for ServiceOfferingComponent. Did you add it to @NgModule.entryComponents?
Error: No component factory found for ServiceOfferingComponent. Did you add it to @NgModule.entryComponents?
at noComponentFactoryError
即使我已经将组件放在声明和 entryComponents 数组中。
import { ServiceOfferingComponent } from './service-offering/service-offering.component';
@NgModule({
declarations: [
ServiceOfferingComponent
],
imports: [
RouterModule.forChild(routes)
],
providers: [
DriverService,
],
entryComponents: [
ServiceOfferingComponent
]
})
export class DriverModule { }
import { ServiceOfferingComponent } from './service-offering/service-offering.component';
import { ModalController } from '@ionic/angular';
@Injectable()
export class DriverService {
constructor(
public modalController: ModalController
) {
someObservable$.subscription((val:boolean) =>{
if(val) this.showServiceOfferingModal();
});
}
async showServiceOfferingModal() {
const modal = await this.modalController.create({
component: ServiceOfferingComponent,
backdropDismiss: false
});
await modal.present();
}
}
我的假设是,如果该服务在 DriversModule 的所有子路由中运行良好,我可以在当前子页面上显示模式,无论我正在浏览 DriversModule 的哪个子页面,只要该服务可用。但显然,这种假设是不正确的。
您知道将模态放入服务中的任何技术,并且当出现条件时,将模态呈现在用户正在浏览的页面上,无论它是哪个页面,只要它是 DriversModule 的子页面?