With the advent of Angular, designers and web developers finally breathed a sigh of relief. The frameworks before Angular treated HTML and CSS like tools for barbarians: they avoided them, considered them as something no civilized developer should touch. Angular, on the other hand, treated them with due respect.
Developers also appreciated the two-way data binding: changes to data were immediately reflected on the page, and vice versa: user changes were stored in linked variables.
This technology allowed us to write applications faster and avoid having an extra layer of action handlers on forms, transferring changed data into shared storage and retrieving it from there to display the updated page.
Another Angular feature is Dependency Injection. The technology itself existed for a long time, but lived in languages like Java and C#. On the front, it is also appropriate: you need HttpClient – implement and use it.
The same goes for the animation service or wrappers for the standard window and location objects, which are now available for unit tests.
Window and location are built-in browser objects for managing browser windows and URLs. You can use them to, for example, open a new window or load a resource at a specified URL.
Because these objects are hardwired to the browser, their unit testing is difficult: you cannot get a reference result that is the same in different browsers. Angular, on the other hand, provides wrappers over these objects and allows you to test them.
In addition, it was possible to create and reuse components using Angular directives.