在Angular中,可以使用ChangeDetectorRef来手动检测JavaScript输入的变化。以下是一个示例解决方案:
首先,导入ChangeDetectorRef:
import { Component, OnInit, ChangeDetectorRef } from '@angular/core';
然后在组件的构造函数中注入ChangeDetectorRef:
constructor(private cdRef: ChangeDetectorRef) { }
在需要检测变化的地方,调用cdRef.detectChanges()方法:
this.cdRef.detectChanges();
以下是一个完整的示例组件:
import { Component, OnInit, ChangeDetectorRef } from '@angular/core';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements OnInit {
inputValue: string;
constructor(private cdRef: ChangeDetectorRef) { }
ngOnInit() {
// 假设inputValue是通过JavaScript输入的值
this.inputValue = '初始值';
}
onChange() {
// 假设这个函数是当输入框的值发生变化时调用的回调函数
// 手动检测变化
this.cdRef.detectChanges();
}
}
在模板中,可以使用ngModel绑定输入框的值,并调用onChange函数:
这样,当输入框的值发生变化时,会调用onChange函数并手动检测变化。