如何在不使用 preloadModules:true 的情况下在 ionic 3 中进行正常的延迟加载

How to do normal lazy load in ionic 3 without using preloadModules:true

我在 ionic 3 中使用延迟加载来按需加载页面,但在 app.module.ts 中如果我添加

IonicModule.forRoot(MyApp, { **preloadModules:true** }), 

然后一切正常,但 ion-icon.

有一些小问题

当我使用

<ion-icon name="ios-calendar"></ion-icon> 

它显示图标,但是当我将图标名称更改为仅日历时,它没有显示任何内容。

当我使用

<button ion-button menuToggle>
  <ion-icon name="ios-menu"></ion-icon>
</button>

header 中不显示切换按钮。当我从按钮中删除 menuToggle 属性时,它显示切换按钮。 (即功能不起作用)

第二种情况是当我在没有 preloadModules:true 的情况下使用延迟加载时出现错误

**Error: No component factory found for HomePage . Did you add it to @NgModule.entryComponents? at noComponentFactoryError (core.js:3929)**

这是两个不同的问题: 1.延迟加载 2.图标

这是对 #2 的回答。添加特定于平台的图标的正确方法是使用特定于平台的属性,而不仅仅是为所有图标使用名称:

  <!--Basic: auto-select the icon based on the platform -->
  <ion-icon name="calendar"></ion-icon>

  <!-- Advanced: explicity set the icon for each platform -->
  <ion-icon ios="ios-calendar" md="md-calendar"></ion-icon>