是否可以获取 formControl 的本机元素?

2024-02-16

我有角反应形式 https://angular.io/docs/ts/latest/cookbook/dynamic-form.html。我创建formControls 并将其分配给输入字段[formControl]=...。据我了解,它创造了nativeElement <-> formControl link.

我的问题:是否可以得到nativeElement for formControl?我想做类似的事情myFormControl.nativeElement.focus()


下面的代码不适用于纯 ngModel 绑定,因此我做了很多实验。马克西米利安·施瓦茨穆勒(Maximilian Schwarzmuller)也确认了最新的应该是:

@Directive({
    selector: '[ngModel], [formControl]', // or 'input, select, textarea' - but then your controls won't be handled and also checking for undefined would be necessary
})
export class NativeElementInjectorDirective {
    constructor(private el: ElementRef, private control : NgControl, @Optional() private model : NgModel) {
        if (!! model)
            (<any>model.control).nativeElement = el.nativeElement;
        else
            (<any>control).nativeElement = el.nativeElement;
    }
}

因此,如果在主模块中提供并导出该指令,它将向所有 FormControl 附加一个自定义的 nativeElement 属性.

可惜它没有开箱即用......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以获取 formControl 的本机元素? 的相关文章