Web applications heavily rely on forms. In many ways Angular is so successful because two-way bindings and ng-model made creating dynamic forms easy.
Although very flexible, the AngularJS 1.x approach has some issues: the data flow in complex user interactions is hard to understand and debug.
Angular 2+ builds up on the ideas from AngularJS 1.x: it preserves the ease of creating dynamic forms, but avoids the issues making data flow hard to understand.
In this chapter we will look at how form handling (or input handling) works in Angular.