1

パフォーマンスを向上させるために、ionic 3/angular5 アプリに遅延読み込みを実装しています。しかし、それを使用してモーダルを開くことができず、気が狂ってしまいます。メッセージを読み込んで表示するページ(赤のジャーナル)があります(緑のメッセージ項目)。ユーザーがそれをクリックすると、以下のようなモーダルで完全なメッセージ (青色の MessageModal) が開きます。

ここに画像の説明を入力

それぞれに 3 つの個別のモジュールを作成しました。しかし、メッセージ項目モジュールに MessageModal を追加したにもかかわらず、ボタン OPEN MESSAGE をタップした後、次のエラーが発生し続けます。

キャッチされていません (約束されています): エラー: MessageModal のコンポーネント ファクトリが見つかりません。@NgModule.entryComponents に追加しましたか

そのため、各モジュール/コンポーネントの entryComponents に ModalMessage を追加しようとしましたが、それでも機能せず、本当に行き詰まっています。

JournalModule は MessageModule と MessageModalModule をインポートする必要があり、MessageModule は MessageModal をその entryComponents に追加する必要があります。以下のコードを見つけてください:

ジャーナル.モジュール.ts

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

journal.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>

message.module.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 });

message-modal.module.ts

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

どこが間違っているのかわかりません..アドバイス/ドキュメントをいただければ幸いです!

4

0 に答える 0