I am new to angular and I am learning Angular 6. I understood about ngModel. But while I was experimenting with ngModelChange, some questions raised.
I have an html element HTML
<input #input type="text" [value]="name" [(ngModel)] ="name" (ngModelChange) ="change(input.value)"/>
Typescript
change(event :any) {
this.name = event;
console.log(this.name);
}
Upon changing the value in the input , I can see the changes with the name property.
When I changed the html code to
HTML
<input #input type="text" [value]="name" [ngModel] ="name"
(ngModelChange)="change(input.value)" />
{{ name }}
TS
change(event :any) {
this.name = event;
console.log(this.name);
}
It's working fine as expected in the console and in the UI.
Question 1
<input #input type="text" [value]="name" [(ngModel)] ="name"
(ngModelChange) ="change(input.value)"/>
&
<input #input type="text" [value]="name" [ngModel] ="name"
(ngModelChange)="change(input.value)" />
are same??
Question 2.
When I remove the [ngModel] directive. The ngModelChange is not getting triggered. Is it mandatory to have [ngModel]? If yes,Why?
HTML
<input #input type="text" [value]="name"
(ngModelChange)="change(input.value)" />
<br/>
<br/>
{{ name }}
TS
change(event: any) {
this.name = event;
console.log(this.name);
}
This would be a great help. Thanks in Advance.