离子延迟加载为自定义根模块提供错误“无效链接”

时间:2017-06-27 10:06:39

标签: ionic-framework lazy-loading ionic3

我正在使用ionic v3.2.0,作为要求的一部分,我创建了另一个名为start.component.ts和start.modulue.ts的根组件。这是app.component.ts和app.modulue.ts的简单副本。

我在 appModule 中实现了延迟加载。

main.ts

import { AppModule } from "./app.module";

platformBrowserDynamic().bootstrapModule(AppModule);

app.component.ts

export class MyApp {
  @ViewChild(Nav) nav: Nav;

  rootPage: any = "LoginPage";

  ...
}

一切正常,登录模块正在加载。

不,我改为 startModule

main.ts

import { StartModule } from "./start.module";

platformBrowserDynamic().bootstrapModule(StartModule);

start.component.ts

export class StartApp {
  @ViewChild(Nav) nav: Nav;

  rootPage: any = "LoginPage";

  ...
}

这给我的错误如下:

main.js:1436 ERROR Error: Uncaught (in promise): invalid link: LoginPage

login.module.ts

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { LoginPage } from './login';

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

login.ts

@IonicPage()
@Component({
  selector: 'page-login',
  templateUrl: 'login.html',
})
export class LoginPage {
 ....
}

P.S。 :如果我删除LazyLoding,一切正常。我尝试使用最新的离子版本3.4.0,但同样的错误。

1 个答案:

答案 0 :(得分:0)

解决方案将您的文件从 start.module.ts 重命名为 app.module.ts

因为当离子开始编译时,它开始寻找名为 app.module.ts 的文件,当它在app目录中找不到时;然后生成类似于此

的警告和错误
  

在以下路径中未找到主应用程序NgModule:   C:\ Users \用户muham \文件\离子项目\待办事项\ SRC \应用\ app.module.ts

这意味着它在离子cli中被硬编码用于编译过程。因此,应用程序需要在app中使用名为app.module.ts的文件进行编译和构建。 希望这将解决问题