1

我正在我的 ionic 3/angular5 应用程序中实现延迟加载以提高性能。但是我无法使用它打开一个模态,这让我发疯。我有一个页面(红色期刊),我在其中加载消息并显示它们(绿色消息项)。当用户单击它时,它会在如下所示的模式上打开完整的消息(蓝色的 MessageModal)。

在此处输入图像描述

我为每个模块创建了 3 个单独的模块。但是,尽管我将 MessageModal 添加到 message-item 模块,但在点击按钮 OPEN MESSAGE 后,我仍然收到以下错误:

未捕获(承诺):错误:未找到 MessageModal 的组件工厂。您是否将其添加到 @NgModule.entryComponents

所以我尝试将 ModalMessage 添加到 entryComponents 到每个模块/组件,但它仍然不起作用,我真的被卡住了。

JournalModule 应该需要导入 MessageModule 和 MessageModuleModule,并且 MessageModule 应该将 MessageModal 添加到其 entryComponents。请在下面找到代码:

日记模块.ts

@NgModule({
  declarations: [ JournalPage  ],
  imports: [
    MessageModalModule,
    MessageModule,
    IonicPageModule.forChild(JournalPage)
  ],
  providers: [JournalService], 
  exports: [JournalPage],
  entryComponents :[MessageModal]
})
export class JournalPageModule {}

一段日记.html

 <ion-list *ngIf="messages.length !=0 && messageLoaded == true">
          <message-item *ngFor="let message of messages" [message]="message"  (quizz)="handleQuizzResult($event)"  (delete)="deleteMessage($event)" (isRead)="messageRead($event)" ></message-item>
 </ion-list>

消息模块.ts

@NgModule({
  declarations: [ MessageItem ],
  entryComponents : [MessageModal],
  imports: [ IonicPageModule.forChild(MessageItem)],
  exports : [MessageItem]
})
export class MessageModule {}

一段message.ts

@IonicPage()
@Component({
   selector: 'message-item',
   templateUrl: './message.html',
   entryComponents : [MessageModal]
})

...

let modal = this.modalCtrl.create( MessageModal, { message : this.message });

消息模态模块.ts

@NgModule({
  declarations: [ MessageModal ],
  imports: [ IonicPageModule.forChild(MessageModal)],
  exports : [MessageModal]
})
export class MessageModalModule {}

我不知道我错在哪里..任何建议/文档表示赞赏!

4

0 回答 0