I want to use template driven forms in Angular 2 and I need to access the current ngForm in my directive, as local property and I don\'t want to pass them as parameter.
You need the ngControl attribute on the inputs you want to check.
and in the component you can access the "frm" variable with
import {Component, ViewChild} from 'angular2/core';
...
@ViewChild('frm') public userFrm: NgForm;
...
public showFrm(): void{
console.log(this.frm);
}
You can't access the frm in the constructor, it's not there at this moment, but in the ngAfterViewInit you can access it.
since Angular 8 or so they have updated the parameters for ViewChild. Currently I need to use this syntax:
@ViewChild('frm', { static: true })userFrm: NgForm;