AngularJS is an open-source JavaScript framework. Its goal is to augment browser-based applications with Model–View–* (MVW, MVVM, MVC) capability and reduce the amount of JavaScript needed to make web applications functional. These types of apps are also frequently known as Single-Page Applications.
AngularJS is an open-source JavaScript framework for building CRUD-centric AJAX-style web applications. Its goal is to shim the browser to augment the HTML vocabulary with directives useful for building dynamic web applications. The next version is 2.0
.
Angular ships with directives which add two-way data binding, DOM control and unrolling, code-behind DOM, form validation, and deep linking.
AngularJS was developed and is maintained by Google, and is used internally by 1600+ apps. The initial release took place in 2009.
AngularJS's Philosophy
- The AngularJS philosophy encourages developers to create their own directives, turning the HTML into a DSL suited to building their kind of application. The result significantly reduces the amount and complexity of JavaScript needed to build web applications.
- The AngularJS philosophy is that UI is best described in declarative form (HTML), and that behavior is best described in imperative form (JavaScript) and that the two should never meet.
- The AngularJS philosophy encourages developers to design their client architecture using advanced software principals like dependency injection, separation of concerns, testability, and a file structure.
Notable features
- Teach your browser new tricks by adding behavior to HTML tags/attributes
- Controllers provide code-behind DOM with clear separation from the view
- Two-way data binding without the need to extend or wrap the model objects
- Dependency injection assembles the application without
'main'
method - Promises/futures remove many callbacks from code when communicating with server
- Directives
- Views and routes
- Filters
- Form validation
- Strong focus on testability
- Extend HTML with your own behavior
- Angular uses spinal-case for its custom attributes and camelCase for the corresponding directives which implement them