#1 Gives Structure to Your App
#2 Two-way Data Binding
Data binding is certainly one the best features in AngularJS. You can declaratively bind your models to HTML elements. When the models change, the view is automatically updated and vice versa. This hugely reduces the amount of boilerplate code traditionally written to keep the model and view in sync.
AngularJS Directives let you teach HTML new syntax. You can create reusable custom components with the directive API. For example, if you want a custom date picker widget you can create a
<data-picker/> component. If you want a fancy file uploader with progress indicator you can go ahead and create a
<file-upload/> component. Cool, isn’t it?
#4 Templating with HTML
AngularJS uses HTML for templating. This keeps things simple and allows designers and developers to work simultaneously. Designers can create UIs in the usual way and developers can use declarative binding syntax to tie different UI components with data models very easily.
#5 Embeddable, Injectable, and Testable
The best thing about AngularJS is that it’s a good team player. It never requires full commitment. As the AngularJS official website says, you can use as much or as little of AngularJS in your project as you need. If you need only two way data binding, you can include Angular and just use this feature.
AngularJS supports Dependency Injection out of the box. If you need something, you just ask Angular to inject it for you. It’s that simple. This hugely improves testability, as you can easily mock the components during testing.
AngularJS was created with testability in mind. The modules and Dependency Injection system make unit testing way easier. Furthermore, AngularJS offers a tool called Protractor which makes End-to-End testing a breeze. So, the code you develop is always testable and maintainable.
That’s not all! AngularJS also offers many more useful features like routing, filters, and animations that make AngularJS one of a kind. But the above points were more than enough for me to fall in love with it.
Do you want to learn AngularJS? Learnable recently published my book, AngularJS : Novice to Ninja which gets you up to speed with AngularJS. We’ll even cover the advanced concepts by building a Single Page Blogging app.