我在app.component.ts的template文件里试图使用另一个Component时,遇到如下错误消息:

app-parent-child is not a known element:

在parent.module.ts定义里,检查exports区域里是否包含了selector app-parent-child对应的Angular Component:ParentChildComponent:

declarations: 定义了该NgModule的组成部分:Components, directives和pipe等。

imports:

module的imports里能导入其他module,这些被导入的module的declarations的Component也可以在发起导入的module里被使用了:

例子:

AppModule导入了ParentModule,因此其能使用后者export区域暴露的Component:

exports:

假设module A 导入了module B,则module A的declarations区域的所有Component,能使用module B的exports区域定义的Component:


父子关系有一种特点,当它在子池子找不到它的依赖性,它会去父池子里面找,这也解释了为什么在Module中Provider的东西,你在Module当中的Component也能用,而且在父组件中Provider的东西,子组件也能用。

The NgModule used for bootstrapping uses the root injector, and can provide dependencies to any part of the app.

也就是说,AppModule(引导 module )里注册的服务,能在该应用的任何位置被注入。


惰性加载的模块有自己的注入器,通常它是根注入器的一个子注入器。 惰性加载的服务,其作用范围局限于这个惰性加载模块的注入器。 如果惰性加载模块也提供了 UserService,则任何在该模块的上下文中创建的组件(比如通过路由导航)都会获得该服务的一个局部实例, 而不是根注入器中的全局实例。 而外部模块中的组件仍然会使用由它们的注入器提供的实例。

可声明对象必须属于也只能属于一个模块。 如果你尝试把同一个类声明在多个模块中,那么编译器就会报错。 要注意不能声明那些从其它模块中导入的类。

默认情况下,可声明对象是私有的。 如果 ModuleA 不导出 UserComponent,那么只有这个 ModuleA 中的组件才能使用 UserComponent。

更多Jerry的原创文章,尽在:“汪子熙”:

Angular NgModule 中的 declarations 和 exports定义相关推荐

  1. Angular NgModule

    NgModule 1,定义 NgModule 是一个带有 @NgModule 装饰器的类,代表一个模块. 2,作用 NgModule把组件.指令和管道打包成内聚的功能块,每个模块聚焦于一个特性区域.业 ...

  2. NgModule中的声明,提供程序和导入有什么区别?

    本文翻译自:What is the difference between declarations, providers, and import in NgModule? I am trying to ...

  3. Angular NgModule 作用域相关问题

    NgModule 是你使用 Angular 编写应用程序时遇到的第一个基本结构,但由于涉及不同的作用域范围,它也是最微妙和最复杂的.如果你想详细了解 NgModule 的相关知识,可以直接参考 Ang ...

  4. Angular 项目中的可摇树依赖 - Tree-shakable dependencies

    Tree-shakable dependencies in Angular projects Tree-shakable 依赖更容易推理和编译成更小的包. Angular 模块 (NgModules) ...

  5. Angular项目中核心模块core Module只加载一次的实现

    核心模块CoreModule在整个系统中只加载一次,如何实现? 创建core Modele:ng g m core 既然CoreModule是类,就有构造函数,在构造函数中进行依赖注入. export ...

  6. Ionic+Angular实现中英国际化(附代码下载)

    场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...

  7. angular 动画_如何在Angular 6中使用动画

    angular 动画 介绍 (Introduction) Animation is defined as the transition from an initial state to a final ...

  8. 如何在Angular 10中生成QR码

    In this tutorial, we'll learn how to generate QR codes in Angular 10 by building a simple example ap ...

  9. 在Angular项目中引入NG-ZORRO

    在Angular项目中引入NG-ZORRO 1.前置 2.安装NG-ZORRO并进行初始化配置 3.引入样式 4.引入组件 1.前置 首先创建一个angular项目:angular创建一个新项目的步骤 ...

最新文章

  1. 基于nodejs实现本地网页服务器-实现手机测试电脑开发的移动端网页
  2. 进入正在运行状态中的Docker容器
  3. python locust 能压测数据库_python locust 性能测试:HOOKS钩子方法
  4. 微软想将新版Edge浏览器引入Linux
  5. Oracle安装 - shmmax和shmall设置
  6. Python学习——02-Python基础——【9-面向对象进阶】——isinstance(obj,cls)、反射等...
  7. 性能优化(7):教你正确使用css选择器
  8. 监听mysql表内容变化 使用canal_2 监听mysql表内容变化,使用canal
  9. java基础-01基本概念
  10. 2020 Pwn2Own东京大赛落幕,Master of Pwn 诞生
  11. java rector_Java IO的Reactor模式
  12. Android入门笔记05
  13. 安卓(Android)的原生系统真的那么好用吗
  14. 长期性喝茶的好处和弊端
  15. 数据嗨客 | 第6期:不平衡数据处理
  16. objdump指令 elf文件转成lst文件
  17. JavaScript之封装Math函数
  18. JS返回前一页(或关闭本页面,返回首页)
  19. 吴恩达视频-第一门课第2周2.7、2.8节-计算图与使用计算图求导数
  20. 详解unity中tranform.worldToLocalMatrix

热门文章

  1. 最新Django2.0.1在线教育零基础到上线教程(十四)- 全剧终
  2. 用 Nginx 基于 Let's Engypt 免费证书打造快速安全的 HTTPS 网站
  3. 【bzoj3160】万径人踪灭
  4. Error Domain=NSURLErrorDomain Code=-999 The opera
  5. Wordcount on YARN 一个MapReduce示例
  6. 字节对齐《c和指针》笔记--包含位域结构体的内存对齐(32bit,GCC)
  7. 三层架构---理论篇
  8. Android内部自带的SQLite数据库操作dos命令
  9. [HDOJ5573]Binary Tree(找规律,贪心)
  10. 程序设计课程技巧小总结