angular - Is it possible to get native element for formControl? -
i've got angular2 reactive form. created formcontrols , assigned input fields by[formcontrol]=.... understand creates nativeelement <-> formcontrol link.
my question: possible nativeelement formcontrol? wanna myformcontrol.nativeelement.focus()
i can share 1 terrible solution works me.
in reactive forms can use either
1) formcontroldirective
ts
mycontrol = new formcontrol('') template
<input type="text" [formcontrol]="mycontrol"> or
2) formcontrolname
ts
myform: formgroup;  constructor(private fb: formbuilder) {}  ngoninit() {   this.myform = this.fb.group({     foo: ''   }); } template
<form [formgroup]="myform">   <input type="text" formcontrolname="foo"> </form> so these directives write patch like
1) formcontroldirective
const originformcontrolngonchanges = formcontroldirective.prototype.ngonchanges; formcontroldirective.prototype.ngonchanges = function() {   this.form.nativeelement = this.valueaccessor._elementref.nativeelement;   return originformcontrolngonchanges.apply(this, arguments); }; 2) formcontrolname
const originformcontrolnamengonchanges = formcontrolname.prototype.ngonchanges; formcontrolname.prototype.ngonchanges = function() {   const result =  originformcontrolnamengonchanges.apply(this, arguments);   this.control.nativeelement = this.valueaccessor._elementref.nativeelement;   return result; }; after can access native element having formcontrol instance
1) formcontroldirective
focustoformcontrol() {   (<any>this.mycontrol).nativeelement.focus(); } 2) formcontrolname
focustoformcontrolname(name) {   (<any>this.myform.get(name)).nativeelement.focus(); } 
Comments
Post a Comment