我有一个selector为app-root的Angular Component:

其模板文件里只有一行html代码:

在运行时,这个h1标签是如何插入到整个DOM tree里的呢?

在Angular bootstrap时,根据selector app-root使用ComponentFactory创建Component reference:

创建完application Component之后,立即执行renderView方法:

在render方法里执行view的template函数:

executeTemplate的具体实现:

在函数ɵɵelementStart内部:

把2代表的h1,即child 节点,append到1代表的app-root上去:


最后在platform-browser.js实现的class DefaultDomRenderer2里,调用dom节点的appendChild原生方法,完成节点插入到DOM tree的操作:

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

Angular Component模板里的元素,运行时如何被生成并插入到DOM tree中相关推荐

  1. ACM 投稿时CCS CONCEPTS 生成及插入

    ACM 投稿时CCS CONCEPTS 生成及插入 前段时间千辛万苦把论文投出去,硬着头皮把会议开完,本以为万事大吉,今天晚上又给我发邮件说我文章里CCS CONCEPTS没有,让我修改.但是我不知道 ...

  2. 如何从Angular的ActivatedRoute数据结构中获得运行时路由信息

    看个具体的例子: 路由配置信息: const CUSTOM_ROUTES: Routes = [{ path: "custom/:id", component: RouteDemo ...

  3. SAP Spartacus page slot里的Component,对应的DOM节点是如何插入到DOM tree里的

    例子:我新建了一个AppComponent,映射到了ManageCostCentersListComponent: 运行时的效果: 这个AppComponent对应的app-root是如何被添加到DO ...

  4. swagger 扫描java文档_推荐一款在运行时通过javadoc生成Swagger API文档的库

    介绍 一般,我们使用Springfox生成swagger api文档,但Springfox不支持从javadoc中生成,只能通过注解的方式标注文档. 这样,当共享一些POJO类时,为了同时生成java ...

  5. java 捕获运行时异常_java-如何通过ASM在字节码中捕获运行时异常

    我试图通过异常捕获运行时异常.我能够捕获通常的方法退出事件. 但是,控件永远不会到达opcode == Opcodes.ATHROW. 我认为在调用事件时做错了事. 这是我的示例代码: public ...

  6. Angular jasmine单元测试框架spec的运行时数据结构

    以我单元测试里这段代码为例: 通过describe函数创建一个suite,即spec的集合: 真正的spec由函数it创建:其中expectable是human readable的字符串描述信息,描述 ...

  7. Angular form控件原生HTML代码里ng-reflect-form属性和其值的生成时机

    简单的Component代码: import { Component } from '@angular/core'; import { FormControl } from '@angular/for ...

  8. JVM运行时数据区和各个区域的作用

    一.JVM主要分为5个核心区域(6个子区域),分别是: 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 *运行时常量池(属于"方法区"的一部分) 二.各个区域作用和描 ...

  9. 通过运行时单步调试弄清楚[(ngModel)]的双向绑定的工作原理

    Component HTML: <input type="text" maxlength="40" nz-input placeholder=" ...

最新文章

  1. 从原理到代码,轻松深入逻辑回归模型!
  2. C#之windows桌面软件第十三课:C#中常用的类有哪些?构造函数怎么用?
  3. Maven(十)通过Maven缺失servlet.api的解决方式看provide(依赖范围)
  4. c语言printf右移,C语言printf(“”)左右(转)
  5. k8s存储卷(empyDir;hostPath;nfs)
  6. 建议 Solr 用户更新 Apache POI
  7. linux终止yum进程,【Linux】CentOS7中yumbackend.py进程的结束方法
  8. Oracle SQL篇(三)Oracle ROWNUM 与TOP N分析
  9. 史上最能“拜客户教”的公司,是如何做到持续交付的?(第2趴)|DevOps案例研究...
  10. 【嵌入式硬件Esp32】Ubuntu 1804下ESP32交叉编译环境搭建
  11. POJ 1523 SPF (割点 点双连通分量)
  12. linux如何更改ssh配置文件,Linux系统下ssh的相关配置详细解析
  13. Unicode汉字编码
  14. linux创建逻辑目录,Linux创建逻辑卷
  15. 《Gabor feature based sparse representation for face recognition with gabor occlusion dictionary》
  16. Python 标准库 —— glob
  17. 看电影的计算机配置,专门看电影的电脑主机需要什么配置?
  18. System Center 2012 R2 CM系列之配置configuration manager防火墙设置
  19. 工程项目管理系统源码
  20. 未知错误,可能由于拨号连接未创建成功

热门文章

  1. C#读书笔记:线程,任务和同步
  2. 多晶硅价格已处于阶段性高点
  3. Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)...
  4. Objc基础学习记录5
  5. PLSQL developer 连接64位oracle 11.2G
  6. (二)Mysql 基础了解,修改字符集,配置文件
  7. ThreadLocal介绍以及源码分析
  8. GALV_maptravel研究分析(1)
  9. thinkPHP 空模块和空操作、前置操作和后置操作 具体介绍(十四)
  10. hibernate ——联合主键