Angular is JavaScript web Framework. It focuses on single-page application creation. These apps are created with the help of HTML code, to which are inserted special formatting marks, which then define, which operations or data have to be put on given place. Angular is available freely under MIT license. Nowadays, the biggest contributor is the Google, which was its founder in 2009.

Architecture

Angular was designed to allow the web creators to separate the displaying logic from the application logic without having to have greater knowledge of programming. For that purpose, Angular uses design pattern Model-View-Controller or the alternative Model-View-ViewModel. With the help of this abstract separation is most of the application logic in a model or controller. The model or controller is then inserted into $scope of the view template. That can then use defined variables and with the usage of special directives to list them and even manipulate with them in any way possible.

Angular also looks after changes, which are ongoing on variables defined for the given $scope. That is possible thanks to the usage of dirty-checking, which takes care of control, whether the new value does not differs from the old one. If the value of the variable changes, Angular assures, that it is really necessary to change DOM and then actualizes view template to the newest state. The functionality contributes to the fact, that there is no need to take care of repeated portraying and watch changes and it is enough to focus on final look of the app.

Scope

Angular uses own implementation scope. Scope, thanks to that, holds the references on every actual variables, which are defined on it and also on the DOM part, with which it currently works. The access provides Scope variable, which is defined in controller.

Controller

Angular uses controllers for its work. Each is connected to HTML DOM with the help of directive ng-controller. Each controller has its own $scope for its work. In it are saved values and objects, with which it then can work.

Controllers are used for:

  • Settings of the initial state of $scope object
  • Editing $scope acting

For other cases can be used specialized components Angular. Those then enable the communication between the controller and view model.

Popular ways of Angular usage

  • Application for video streaming. Youtube application for Sony PS3 is developed with the use of Angular. Another example is Netflix.
  • Application for user ratings. Example of usage is GoodFilms.
  • Travelling applications. On of the examples is JetBlue websites.
  • Applications for the weather forecast.
  • Portals with the generated content for users. E. g. the usage of Freelancer.com
  • eCommerce.
  • Mobile sale. Angular for their shopping app uses e. g. MallZee.
  • Social sites. E. g. LinkedIn.

Advantages of using Angular

  • Community. Because of the fact, that Angular is maintained by the engineers in Google, there is a large community, from which we can learn and which can help with the solution of eventual problems.
  • Intuitive. Angular is very intuitive, because it uses HTML as declarative language. Furthermore, it is simpler for reorganisation.
  • Capacious. Angular is a comprehensive solution for the fast development of front-end. It is not needed to use other plugins or Frameworks.
  • Testing. Angular supports unit testing, by which simplifies maintaining the maximum quality.

The disadvantages of using Angular

  • Confusion. There are many ways how to solve one problem. Especially for beginners it can be very difficult to consider, which version probably use. Programmers have to learn to understand the individual components well.
  • Delays of UI. If there is more than 2 000 viewers, UI can take on great delays. That means, that the complexity of forms is in Angular limited. It concerns the grids and lists of large data.
  • Collision of the names. It is not possible with Angular to compose greater amount of NG apps on the same page, which can lead to collision when naming.