Angular 2 allow to access the ngForm instance by creating a local template variable. Angular 2 exposes directive instances like ngForm by specifying exportAs property of the directive metadata. Now, the advantage here is without much coding you can access the ngForm instance and use it to access submitted values or to check if all the fields are valid using properties (valid, submitted, value etc).
#f = ngForm (creates local template instance "f")
ngForm emits the event "ngSubmit" when it's submitted (Check @Output documentation for more details of event emitter)
(ngSubmit)= "login(f.value,f.submitted)"
"ngModel" creates a Form Control in combination with input "name" attribute.
<input type="text" [(ngModel)]="username" placeholder="enter username" required>
When form is submitted, f.value has the JSON object representing the submitted values.
{ username: 'Sachin', password: 'Welcome1' }