angular - ngOnChanges 未被调用
问题描述
我正在更新组件属性,但未调用 ngOnChanges。请查看链接的 StackBlitz 以查看重现的问题以及我迄今为止尝试过的所有内容:
https://stackblitz.com/edit/angular-becgjq
编辑:查看代码的正确链接
相关代码
ngOnInit() {
const testButton1 = document.getElementById('test-button1');
testButton1.addEventListener('click', function() {
console.log('about to set this.value');
console.log(this.value);
this.value = 'value set by button 1';
}.bind(this));
const testButton2 = document.getElementById('test-button2');
testButton2.addEventListener('click', this.testButtonCallback2(this), false);
const testButton3 = document.getElementById('test-button3');
testButton3.addEventListener('click', this.testButtonCallback3.bind(this), false);
}
ngOnChanges() {
console.log('ngOnChanges was called');
}
testButtonCallback2(outerThis) {
return function() {
console.log('about to set this.value');
console.log(outerThis.value);
outerThis.value = 'value is set by callback2';
}
}
testButtonCallback3() {
console.log('about to set this.value');
console.log(this.value);
this.value = 'value is set by callback3';
this.changeDetectorRef.detectChanges();
}
解决方案
推荐阅读
- r - R - 包含转义字符“\”的字符串
- c# - Blazor:是否有支持 AAD 登录和数据库登录的方法
- python - 美汤如何诠释?
- spring - 在 Spring Boot 中一次获取数百万行的最佳方法是什么?
- python-3.x - Aws- Dynamodb,更新 Dynamodb 中的项目时出现 ClientError
- python - Pyinstaller FileNotFoundError: 'C:\\Users\\axela\\PycharmProjects\\RT_HMap\\dist\\main\\cmlib\\version.txt'
- laravel - 如何使用morphOne?
- javascript - 如何在制作图像编辑器时使用 JavaScript 更新图像样式?
- swift - 当从另一个结构调用该函数时,为什么调用一个函数作为 NSManagedObjectContext 的扩展会导致错误?
- android - 如何访问具有签名权限的车辆属性?是否可以植根 Android 汽车操作系统?