如何通过原型扩展FormControl功能



我希望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)

堆叠式

最新更新