例子:考虑这行代码:

 [class.is-current]="isCurrentItem(item)"

如果函数isCurrentItem(item)返回true,则tr标签会被分配is-current class.

isCurrentItem的计算逻辑:

/*** Indicates whether the given item is the current item.** The current item is driven by the `currentItem`, that holds a* property and value to compare.*/isCurrentItem(item: any): boolean {if (!this.currentItem || !this.currentItem.value) {return false;}return this.currentItem?.value === item?.[this.currentItem?.property];}

什么时候给这个tr标签分配的is-current class?

在core.js的函数ɵɵclassProp里设置断点进行调试即可:

下面这段代码给tr标签赋上is-current的class:

最后在platform-browser.js里调用浏览器原生的html元素的classList属性的add方法,添加新的is-current类:

同样值得关注的函数还有ɵɵstyleProp.

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

Angular页面里元素class的动态绑定的实现源代码调试相关推荐

  1. Angular页面在开发模式(DevMode)下的ng-reflect-属性是如何生成的

    以自定义Component为例: 在渲染该页面时,调用θθproperty方法: setNgReflectProperties这个自描述的方法,设置我们在Angular页面里看到的NgReflect属 ...

  2. Angular应用页面里_ngcontent属性的生成逻辑

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

  3. Angular 页面元素的DOM级别的删除过程

    我的Angular视图里有如下一组p节点,通过自定义指令控制: <p>The condition is currently<span [ngClass]="{ 'a': ! ...

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

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

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

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

  6. php退出页面父元素,jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码...

    iframe和弹窗这些词对于js高手来说都是耳熟能详的东西,作为一个新人来说,还在学习阶段的我就在工作中遇到这么一个奇葩的需求,要在引入的iframe页面里做一个全屏化的功能. 粗略一看,这还不容易, ...

  7. 抓取页面图片元素并保存到本机电脑

    在这里主要通过流分析,通过java模拟访问页面获取到页面的html元素,并通过jsoup来分析获取到的html元素, 然后通过流处理来将图片保存到本机 package getpicture;impor ...

  8. Angular 应用里的 vendor.js 是用来干什么的?

    What is vendor file in angular? 以 SAP 电商云 UI 的 Angular 页面为例,这个 vendor.js 有超过 17 万行代码: 此文件包含导入您的应用程序 ...

  9. Angular页面调试一个有用的小技巧 - normalizeDebugBindingName和normalizeDebugBindingValue - [object Object]

    在开发模式下渲染出的Angular页面包含了很多形如下图ng-reflect-的html属性,很多时候其值都为[object Object]. 如果处于调试目的,需要在Chrome开发者工具里观察这些 ...

最新文章

  1. 西安邮电大学计算机学院系主任,西安邮电大学计算机学院
  2. 黑苹果没有找到触控板为什么还是能用_为什么Macbook触控板体验领先Windows那么多,却难以取代鼠标?...
  3. P2P in Flash Player 10
  4. java怎么调用存储函数_java中调用存储过程或存储函数的方法
  5. 笔记-项目质量管理-过程决策程序图法
  6. BTrace for Java应用程序简介
  7. 数据结构--队列Queue--打印杨辉三角
  8. C++17新特性之std::string_view
  9. 查看队列深度_不为人知的网络编程(十一):从底层入手,深度分析TCP连接耗时的秘密...
  10. 安卓文本编辑器php cpp,开源的Android富文本编辑器
  11. c#制作发行版 vs_vs2019制作多项目工程模板 - Jackie Hao
  12. 绝不因寂寞而爱上别人
  13. 实用的 Python 之 feedparser
  14. HBase的java操作,最新API。(查询指定行、列、插入数据等)
  15. 把hive sql的关键字小写转大写的小程序
  16. 2014-10-18 多玩初面
  17. 用74ls00,74ls153,74ls151,74ls138设计三变量表决器
  18. Python判断素数 查找所有素数
  19. win10亮度调节消失的解决方法
  20. 小米路由器SSH资料攻略

热门文章

  1. 对于sonar展示的问题数的研究
  2. 探索Julia(part10)--自定义函数
  3. 数据挖掘学习日志(part1)--熵值法
  4. 20应用统计考研复试要点(part38)--概率论与数理统计
  5. 走近分形与混沌(part1)--分形是趋于无穷的极限,是画不出来的
  6. 卷积神经网络CNN要点:CNN结构、采样层、全连接层、Zero-padding、激活函数及Dropout
  7. 将您的基于 Accelerator 的 SAP Commerce Cloud Storefront 迁移到 Spartacus Storefront
  8. Angular 依赖注入 useClass 的实例创建位置
  9. Angular应用的index.html
  10. Angular view container删除view实例的过程