我想找出,是什么导致变化检测周期在我的角度(版本8-我现在不能升级)应用程序。,我想修补或拦截ZoneJS,这样我就可以看到是什么触发了CD循环。
(例如:tick()已由HTML事件侦听器启动。)
这是我的main.ts文件:
platformBrowserDynamic().bootstrapModule(AppModule).then(moduleRef => {
const applicationRef = moduleRef.injector.get(ApplicationRef);
const componentRef = applicationRef.components[0];
enableDebugTools(componentRef);
}).catch(err => console.error(err));这是猴子补丁的tick()函数来查看应用程序滴答声。
export class AppModule {
constructor(
private readonly translate: TranslateService,
applicationRef: ApplicationRef
) {
translate.setDefaultLang('cz');
const originalTick = applicationRef.tick;
applicationRef.tick = function(): any {
console.log('TICK');
return originalTick.apply(this, arguments);
};
}
}通过这个设置,我可以看到和用于--每个键盘输入的--在一个带有[(ngModel)]的输入文本中(以及在组件中使用{{test()}} / console.log('Template Check')进行四次模板检查)。我希望只有单勾和两种模板检查。
我发现我可以使用TaskTrackingZoneSpec 这里,但我无法使它工作。
发布于 2022-02-04 08:47:12
按键和按键事件正在触发-因此,在用户输入envets (和xhr请求)上调用更改检测周期时,将进行2次检查。
https://stackoverflow.com/questions/70983563
复制相似问题