Angular 2延迟加载在集成到另一个应用程序时不起作用

时间:2017-03-02 14:29:02

标签: angular

我想对功能模块使用延迟加载。我使用angular-cli和当我运行服务时它工作正常。 现在我试图将angular-cli生成的js文件包含在遗留jquery应用程序中:

  • 在名为angular
  • 的目录中复制0.chunk.js,inline.bundle.js,main.bundle.js,polyfills.bundle.js,styles.bundle.js和vendor.bundle.js
  • 在我的html文件中,我正在加载文件:

    /js/angular/inline.bundle.js /js/angular/polyfills.bundle.js /js/angular/styles.bundle.js /js/angular/vendor.bundle.js /js/angular/main.bundle.js

在我的申请中,假设我转到此网页: http://localhost:8090/myapp/test.action

为了在我的应用程序中集成角度组件,我使用路由器重定向到我想在AppComponent中显示的组件:

german.setCellValueFactory(item -> new SimpleStringProperty(item.getValue().getGerman()));
english.setCellValueFactory(item -> new SimpleStringProperty(item.getValue().getEnglish()));

given.setCellValueFactory(item -> item.getValue().givenAnswersProperty());
correct.setCellValueFactory(item -> item.getValue().correctAnswersProperty());
skipped.setCellValueFactory(item -> item.getValue().skippedAnswersProperty());

假设我要显示名为'componentTest'的组件,它将重定向到: 我在html文件中使用此代码http://localhost:8090/myapp/test.action#/componentTest

ngOnInit(): void {
   if (this.displayComponent) {
      this.router.navigate([this.displayComponent]);
   }
}

然后我有这个错误:

EXCEPTION:未捕获(承诺):错误:加载块0失败。

似乎是尝试在此地址加载块文件:

<app-root displayComponent="componentTest">Loading...</app-root>

而不是

http://localhost:8090/myapp/0.chunk.js

如何解决此问题?

由于

在没有延迟加载的情况下,此功能非常好。

http://localhost:8090/js/angular/0.chunk.js

1 个答案:

答案 0 :(得分:2)

加载块文件的文件夹实际上可以在angular-cli中配置。 我添加了&#34; - deploy-url / js / angular&#34;标志为ng build命令。

https://www.reddit.com/r/Angular2/comments/5wozkl/angularcli_how_can_i_allow_content_to_be_served/