我们打开一个Angular应用,发现其渲染页面里的DOM元素,包含了形如_nghost-, 以及_ngcontent-这种属性。

这些属性在platform-browser.js的DomRenderer2里生成,具体位置在shimContentAttribute和shimHostAttribute函数内:

class EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {/*** @param {?} eventManager* @param {?} sharedStylesHost* @param {?} component* @param {?} appId*/constructor(eventManager, sharedStylesHost, component, appId) {super(eventManager);this.component = component;/** @type {?} */const styles = flattenStyles(appId + '-' + component.id, component.styles, []);sharedStylesHost.addStyles(styles);this.contentAttr = shimContentAttribute(appId + '-' + component.id);this.hostAttr = shimHostAttribute(appId + '-' + component.id);}

const COMPONENT_REGEX = /%COMP%/g;
/** @type {?} */
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;
/** @type {?} */
const COMPONENT_VARIABLE = '%COMP%';
/** @type {?} */
const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;
/** @type {?} */
const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;

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

Angular应用页面里_ngcontent属性的生成逻辑相关推荐

  1. Angular应用页面里appId的生成逻辑和位置

    DomRendererFactory2类的构造函数里,看到三个输入参数.我们感兴趣的是,appId这个三位随机字符,是如何生成的. 前面这个classRef是DomRendererFactory2的构 ...

  2. Angular.js 页面里的按钮点击事件处理

    假设我有一个Angular页面,上面绘制了一个按钮: <div class="fd-form__set"><div class="fd-form__it ...

  3. Angular html 页面里的井号 #

    例子: <input #inp (change)="foo = inp.value"> listenes to the change event and calls o ...

  4. xml view里control id的生成逻辑

    Created by Jerry Wang, last modified on Aug 19, 2015 XMLTemplateProcessor createId oView createRegul ...

  5. UI5 xml view里control id的生成逻辑

    Fiori control id在line 331处生成: node.id包含的是xml view里定义的id,不含任何view前缀: id的naming convention: +"–&q ...

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

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

  7. 在jsp页面里动态生成EL表达式的key

    如图,页面中有n个商品列表需要加载,这个列表的名字分别是list1.list2-listn,总之不是写死的. 在Ctroller里面,可见参数名师动态生成的: @RequestMapping(meth ...

  8. 在网站插入微博,静态的网页出的来,到服务器出不来,新浪微博生成的微博秀代码,在静态页面能显示小弟我放到自己的.net页面里就显示不了...

    新浪微博生成的微博秀代码,在静态页面能显示我放到自己的.net页面里就显示不了 上面代码中至的代码是新浪微博秀生成的,我把引用到我的页面里,运行网页始终显示空白,在桌面建一个文本文档把代码拷贝进去,改 ...

  9. xamarin.forms 绑定页面里指定元素的某个属性值

    {Binding Source={x:Reference elementName}, Path=BindingContext.propertyname, Mode=OneWay} elementNam ...

最新文章

  1. c++ 类的定义与使用
  2. 设置APP版本跟新提示
  3. Django博客--4.开发博客文章详情页
  4. Cookie、Session和Storage
  5. mysql function 事务_MySQL 事务
  6. mysql中的sql
  7. SReng日志扫描动画教程
  8. 转速传感器隔离放大器输出信号隔离变送器正弦波转方波信号隔离器
  9. NeoKylin Linux Advanced Server release 6.0 安装及卸载达梦7入门操作
  10. 艾媒:ofo用户份额领先摩拜超六成 每10辆共享单车7辆小黄车
  11. 关于有限元应力结果精度的几点讨论
  12. 专访海尔小帅影院创始人马文俊:硬件不是未来 需求才是未来
  13. 计算机网络 网络层 路由汇总(路由聚合)
  14. https改成http(轮播图)
  15. localPosition和anchoredPosition、offsetMin和offsetMax、SizeDelta
  16. Ubuntu-20.04-live-server无人值守安装
  17. U3D实现WebCamera显示
  18. 思维模型 边际效应递减法则
  19. 笔记本Wi-Fi共享
  20. asp打印html,ASP开发必备:WEB打印代码大全

热门文章

  1. java基础(六)多线程/设计模式
  2. ACM:回溯,八皇后问题,素数环
  3. 跨域iframe的高度自适应
  4. PHP strcasecmp函数
  5. tar ------ linux解压 tar命令
  6. 批量部署虚拟机实战解析
  7. WCF,简单而又复杂的东西
  8. Leetcode771.Jewels and Stones宝石与石头
  9. Linux命令更新系统时间,更新所有文件的时间(转)
  10. 洛谷 P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm