我希望FormControl
类型的所有对象都具有将在markAsDirty
方法调用中触发的可观察(或事件发射器(字段(例如onMarkAsDirty
(。我试图通过扩展FormControl
原型来实现这一点,但这对我来说太难了。你能帮我写一些草图吗?
扩展类很容易。您在github 中有FormControl(真正的AbstractControl(的代码
所以你可以定义
export class FormControlExtends extends FormControl {
markAsDirty(opts: { onlySelf?: boolean } = {}): void {
(this as { pristine: boolean }).pristine = false;
if (this['_parent'] && !opts.onlySelf) {
this['_parent'].markAsDirty(opts);
}
//make some more
console.log('say hello');
}
}
请注意,要访问私有变量(在本例中为"_parent"(,请使用方括号,例如不使用this_父级其他此['_parent']
你可以用作
control=new FormControlExtends(null)
堆叠式