加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 17:17:02 所属栏目:安全 来源:网络整理
导读:我正在尝试使用Angular2,当我将基本代码升级到Angular 2.0.0-RC5时,我发现引入了一个突破性的变化@NgModule,它等同于 Angularjs 1.x中的angular.moudle()? 对我来说,@ ngModule让事情变得复杂. 当我使用Angular 1.x时,社区中有一些关于angular.module的抱怨
我正在尝试使用Angular2,当我将基本代码升级到Angular 2.0.0-RC5时,我发现引入了一个突破性的变化@NgModule,它等同于 Angularjs 1.x中的angular.moudle()?

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

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

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

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

我假设为Angular2指定了基于模块的体系结构的@NgModule,并且@ngModule可以在不同的应用程序中重用.与我过去几年使用的其他模块/ bundle / plugin框架相比.它缺乏一些功能.

> @NgModule提供导入/导出功能,但如何在没有Typescript import子句的情况下导入模块,并拒绝其他@NgModule导入@NgModule私有组件/管道/服务.
>没有@NgModule的路由前缀,想象一下3`团队维护@NgModule.例如.任何基于post的应用程序的通用Comment模块,如何避免路由冲突,如何覆盖路由定义,如何在主机@NgModule中配置@ngModule?
>为什么路由配置由RouteModule.forRoot()(或forChild)注册,而不是@NgModule注释的路由属性,如下所示.

@NgModule(route:{prefix:’/ comment’,config:commentRouteConfigs})
导出类CommentModule {}

目前,@ NuModule API耦合路由配置.
>当我在主机模块中导入模块时,如何覆盖@NgModule中定义的组件模板.
>如何挂钩@ngModule生命周期(mout / unmout或加载/卸载等,我在Angular文档中找不到desc),以及如何在内部没有@ngModule服务的情况下在组件/管道/服务之间共享数据状态?
>如果可能将@NgModule设计为可选功能,或者如果我们没有明确声明@ngModule,则默认情况下对应用程序使用隐式@ngModule.

谢谢.

解决方法

据我所知,NgModule主要用于通过路由器正确支持延迟加载路由和组件.

> NgModules导入和导出与TS导入和导出无关.它主要是关于依赖注入和编译模板.
>不知道
>不明白这个问题
> Angular2根本不支持覆盖模板.有一些构建工具允许这样做,但Angular2本身并没有提供任何东西.
>我已经看到在讨论中提到的模块生命周期回调但却找不到具体的东西(如https://github.com/angular/angular/issues/10808#issuecomment-239823985)>我想这是可能的,但我不知道Angular2团队是否考虑过这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读