作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关注 this关于 Angular 变化检测的好文章,我想调试 checkAndUpdateView 函数。但是,它永远不会被触发。
我错过了什么?我尝试使用最新的 Chrome 和 Firefox。
最佳答案
那篇文章是旧的,从 2018 年开始,从那时起 Angular 引入了 Ivy 编译器,它彻底改革了 Angular 的内部结构。如果您使用的是 Angular 9 或更高版本,则不会命中此断点。我测试了一个 Angular 7、8 和 9 应用程序。版本 7 和 8 达到了断点,而 Angular 9 应用程序没有。
我建议使用此组件来调试更改检测。将它添加到您的应用程序,它将计算变更检测周期。
调试更改检测.component.ts:
import { Component, NgZone } from '@angular/core';
@Component({
selector: 'app-debug-change-detection',
template: '<p class="number">{{check()}} zone checks</p>',
styles: [`
:host {
position: absolute;
left: 10px;
bottom: 0;
display: block;
}
.number {
display: block;
}
`]
})
export class DebugChangeDetectionComponent {
count = 0;
constructor(private zone: NgZone) { }
check() {
this.zone.runOutsideAngular(() => {
setTimeout(() => this.count = this.count + 1);
});
return this.count;
}
}
关于angular - 我在 Angular 的更改检测中的断点未在 checkAndUpdateView() 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64157710/
关注 this关于 Angular 变化检测的好文章,我想调试 checkAndUpdateView 函数。但是,它永远不会被触发。 我错过了什么?我尝试使用最新的 Chrome 和 Firefox。
我是一名优秀的程序员,十分优秀!