仅在满足条件时加载Angular 2模块

时间:2017-06-01 06:51:21

标签: angular angular2-aot ng-modules

在我的angular(v.4.1.1)应用程序中,我正在使用拖放功能。基本上,标签之间的所有内容都可以通过拖放来移动。

动画和预览项在较新的浏览器(如Chrome和Edge)中运行良好,但在Internet Explorer中,我得到了大量的峰值,这就是为什么我为它提供缩小的动画和预览功能的原因。 我已经实现了两个版本的拖动NgModule,它们包含具有相同接口但具有不同实现的组件和服务。但是,根据我的应用程序运行的浏览器,我不知道有条件地导入它们的聪明方法。

我创建了一个方法isInternetExplorer(),我可以在我的导入'中使用它。模块装饰器中的数组。此解决方案仅适用于常规打字稿编译,而不适用于AOT编译。有什么方法可以让我的解决方案在AOT环境中运行吗?

这是一个简短的摘录,向您展示我的意思:

@NgModule({
   imports: [  
      isInternetExplorer() ? DragAndMockModule.forRoot() : DragModule.forRoot(), 
      ...
   ],
  ...
})

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为你要找的是以懒惰的方式加载模块。假设您的模块是独立的,您可以利用路由器防护(ROUTING & NAVIGATION)来有条件地加载模块。 以下是有关如何实现此目标的分步教程:LAZY MODULE LOADING

希望它有所帮助。