我使用这个基类来实现if($row = $query->fetch(PDO::FETCH_ASSOC)){
接口,并在每个组件中扩展它,我注意到的是,如果我在ControlValueAccessor
中放置一个断点,并且我有一个绑定到该值的视图,angular触发此函数连续,这是预期的行为吗?我应该关注这个吗?
get value()
这是类型提前组件的html
import { ControlValueAccessor } from "@angular/forms";
export class BaseValueAccessor<T> implements ControlValueAccessor {
public disabled: boolean;
public valueRef: T;
private elementValue: T;
get value(): T {
return this.elementValue;
}
set value(value: T) {
if (value === this.elementValue) {
return;
}
this.setValue(value);
this._onChangeCallback(this.elementValue);
this._onTouchedCallback();
console.log('base-value-accessor trigger change');
}
writeValue(obj: T): void {
this.setValue(obj);
}
registerOnChange(fn: (_: T) => {}): void {
this._onChangeCallback = fn;
}
registerOnTouched(fn: () => {}): void {
this._onTouchedCallback = fn;
}
setDisabledState(isDisabled: boolean): void {
this.disabled = isDisabled;
}
markAsTouched() {
this._onTouchedCallback();
}
private setValue(value: T) {
this.elementValue = value;
this.valueRef = this.elementValue;
}
private _onChangeCallback(_: T) {
}
private _onTouchedCallback() {
}
}
因此不同输入的[(ngModel)]绑定到该值,并且 如果CD被设置为普通CD,则多次调用get,我的问题 这是正常的框架,因为我认为这可能 在某些时候触发一些性能问题。