Thursday, August 14th, 2014
MVVM support. Angular’s so-called Models interact with ViewModel objects through the $scope object that monitors the Models for any changes. Then they are rendered by the Views, which is essentially your HTML code. In their turn, views can be routed using the $routeProvider object, so you can deep-link and organize your Views and Controllers, turning them into URLs that you can navigate with.
Extends HTML. Building websites today often comes down to a series of <div> tags. To make it comprehensive, a web developer has to write numerous extensive CSS classes to indicate what each object in the DOM does, and what it is used for. AngularJs framework assimilates your HTML to XML, extending its possibilities. It’s possible thanks to Angular’s HTML compiler and the fact that it uses directives to prompt a specific behavior based on the just-written syntax.
HTML as your template. AngularJS uses the bracket syntax in its templating system, similar to Hogan.js engine for the Mustache templating language. The templates then come to compiler as DOM elements, at this stage they can extended, executed or reused. This kind of templating system lets you easily extend the DOM tree, as you word with raw DOM components, instead of long strings.
Enterprise-level testing. AngularJS covers testing tasks out-of-the-box as well, you do not need to install any new modules, or add-ons. It has unit-testing API simirar to what we have in QUnit, Mocha or Jasmine. If you wrote unit tests in those before, it won’t be a problem for you to do unit testing in AngularJs. Its Scenario Runner will take you step-by-step through running your tests.
This is why AngularJS is perfect for building quickly an efficient, easily maintainable front-end codebase. As long as you have a source for storing data, AngularJS can do all of the heavy lifting on the client side, while providing an interactive experience for the user.
Just the ng-model and ng-class directives in Angular framework alone let you cut down on coding most of the common operations that you would have to program in jQuery.