AngularJS (or Angular) is an open-source JavaScript framework used for running single-page applications. Also, its purpose is to augment web-based applications with model–view–controller (MVC) capability, in an effort to make both development and testing easier. Angular's goals are to detach DOM manipulation from application logic and also separate the client side of an application from the server side.


  • Angular analyses the page’s DOM and builds the bindings based on the Angular-specific element attributes, so there is no need to use observable functions
  • Instead of adding inner HTML code, Angular modifies the page’s DOM directly (this latter solution is faster than the former)
  • Data binding doesn’t occur on each control or value change, but at particular points of the JavaScript code execution. This improves performance significantly – a single bulk Model/View update can replace hundreds of cascading data change events


  • AngularJS is a complex technology and provides the user multiple ways to perform the same task, thus making it difficult to find the best approach
  • Compilation and linking are not intuitive, and certain cases (recursion in compile, collisions between directives etc.) can be confusing
  • As the project grows with time, there might be the need to update existing implementations


  • Expressions
  • Directives
  • Controllers
  • Validation
  • Tables
  • Filters
  • Forms
  • Events
  • Modules

Development tools

  • Batarang
  • Karma
  • WebStorm
  • Aptana
  • Protractor
  • Visual Studio Code
Scroll to Top