Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对Angular 2中提供的@NgModule感到困惑_Angular - Fatal编程技术网

对Angular 2中提供的@NgModule感到困惑

对Angular 2中提供的@NgModule感到困惑,angular,Angular,我正在尝试播放Angular2,当我将基本代码升级到Angular2.0.0-RC5时,我发现引入了一个突破性的更改@NgModule,它与Angularjs 1.x中的Angular.moude()等效 对我来说,@ngModule让事情变得复杂。 当我使用Angular 1.x时,社区中对Angular.module有一些抱怨,因为存在一些javascript模块系统 默认情况下,Angular cli生成的代码基于SystemJS,我们可以使用Typescirpt来组织源代码的结构 为什么

我正在尝试播放Angular2,当我将基本代码升级到Angular2.0.0-RC5时,我发现引入了一个突破性的更改@NgModule,它与Angularjs 1.x中的Angular.moude()等效

对我来说,@ngModule让事情变得复杂。

当我使用Angular 1.x时,社区中对Angular.module有一些抱怨,因为存在一些javascript模块系统

默认情况下,Angular cli生成的代码基于SystemJS,我们可以使用Typescirpt来组织源代码的结构

为什么我们需要@NgModule,它是运行时应用程序组织的逻辑视图

我假设@NgModule被指定用于Angular2的基于模块的体系结构,并且@NgModule可以在不同的应用程序中重用。与我在过去几年中使用的其他基于模块/捆绑包/插件的框架相比。它缺少一些功能

  • @NgModule提供导入/导出功能,但如何在没有Typescript import子句的情况下导入模块,以及如何拒绝其他@NgModule导入@NgModule私有组件/管道/服务
  • @NgModule没有路由前缀,假设@NgModule由一个第三方团队维护。例如,任何基于post的应用程序的通用注释模块,如何避免路由冲突,如何覆盖路由定义,如何在主机@ngModule中配置@ngModule
  • 为什么route config是由RouteModule.forRoot()(或forChild)注册的,而不是像这样的@NgModule注释的route属性

    @NgModule(路由:{前缀:'/comment',配置:commentRouteConfigs})
    导出类注释模块{}
    

    目前,@NgModule API耦合路由配置

  • 在主机模块中导入模块时,如何覆盖@NgModule中定义的组件模板

  • 如何钩住@ngModule生命周期(mout/unmout或load/unload等,我在Angular文档中找不到描述),以及如何在组件/管道/服务之间共享数据状态,而@ngModule内部没有服务
  • 如果可能的话,可以将这个@NgModule设计为可选功能,或者如果我们没有显式声明@NgModule,则默认情况下为应用程序使用隐式@NgModule
    谢谢。

    据我所知,
    NgModule
    的引入主要是为了正确支持路由器延迟加载路由和组件

  • NgModule
    s导入和导出与TS导入和导出无关。它主要是关于依赖项注入和编译模板

  • 不知道

  • 我不明白这个问题

  • Angular2根本不支持重写模板。有一些构建工具可以实现这一点,但Angular2本身并没有提供任何功能

  • 我见过讨论中提到的模块生命周期回调,但还没有找到任何具体内容(如)

  • 我想这是可能的,但我不知道角二队是否考虑过这个问题。


    我注意到RC5中令人兴奋的延迟加载功能,只是对@NgModule设计感到困惑,谢谢你的回答。好问题,特别是如何使用第三方模块而不相互干扰的部分。我还添加了一个类似的问题——在我看来,
    @NgModule
    与其说是解耦,不如说是耦合。如何在不从
    @NgModule
    收集所有依赖项的情况下独立使用它们呢?如果您还不知道的话,请查看本文。感谢@mxii回答了我的问题。@Yves尽管如此,我现在很享受Angular,我所有的路由规则都注册在一个单独的侧车
    NgModule
    中,与功能模块相对应。