Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了对Angular 2中提供的@NgModule感到困惑大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用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团队是否虑过这个问题.

大佬总结

以上是大佬教程为你收集整理的对Angular 2中提供的@NgModule感到困惑全部内容,希望文章能够帮你解决对Angular 2中提供的@NgModule感到困惑所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。