Jump to content

AngularJS: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Releases: add 1.0.1
Line 50: Line 50:
== Releases ==
== Releases ==


* Jun 25, 2012 - [http://blog.angularjs.org/2012/06/angularjs-101-thorium-shielding.html 1.0.1 thorium-shielding]
* Jun 13, 2012 - 1.0 - temporal-domination
* Jun 13, 2012 - 1.0 - temporal-domination
* Jun 12, 2012 - [http://blog.angularjs.org/2012/06/angularjs-100rc12-regression.html 1.0.0rc12 - "regression-extermination"]
* Jun 12, 2012 - [http://blog.angularjs.org/2012/06/angularjs-100rc12-regression.html 1.0.0rc12 - "regression-extermination"]

Revision as of 06:29, 26 June 2012

AngularJS
Developer(s)Google Inc. and community.
Initial release2009 (2009)
Stable release
1.0.1 / June 25, 2012; 12 years ago (2012-06-25)
Repository
Written inJavaScript
Operating systemCross-platform
LicenseMIT License
Websitewww.angularjs.org

AngularJS is an open-source JavaScript framework. Its goal is to augment browser-based applications with Model–View–Controller (MVC) capability, reduce the amount of JavaScript needed to make web applications functional. These type of apps are also known as Single-Page Applications

Originally created in 2009 by Miško Hevery and Adam Abrons as the front end for a online JSON storage service that would have been priced by the mega-byte system for easy-to-make applications for the enterprise. This venture was positioned as "GetAngular.com" and had some signed-up users. The Way Back Machine has snapshots from Q3 2009, but these days the website redirects to 'angular.org', given Angular's intention to fit anyone's JSON serving and receiving backend.

The technology re-writes a page that a browser has loaded. At one level it re-reads the source of the page and obeys turing-complete directives. At another level it binds input or output parts of the page to a models represented in a vanilla JavaScript variable. Those JavaScript variables can be manually composed or retrieved over the wire from static or dynamic JSON resources. The page language is a superset of HTML. Extra attributes exist to support Angular directives and with Angular's library loaded these are acted upon. Without Angular loaded the extra attributes are typically ignored by current and modern browsers.

The Zen of Angular

Angular is built around the belief that declarative code is better than imperative when it comes to building UIs and wiring software components together, while imperative code is excellent for expressing business logic.

  • It is a very good idea to decouple DOM manipulation from app logic. This dramatically improves the testability of the code.
  • It is a really, really good idea to regard app testing as equal in importance to app writing. Testing difficulty is dramatically affected by the way the code is structured.
  • It is an excellent idea to decouple the client side of an app from the server side. This allows development work to progress in parallel, and allows for reuse of both sides.
  • It is very helpful indeed if the framework guides developers through the entire journey of building an app: from designing the UI, through writing the business logic, to testing.
  • It is always good to make common tasks trivial and difficult tasks possible.

Notable Angular Directives

These two attributes, when added to HTML, allow for turing-complete behavior at runtime, for otherwise standard markup:

ng-repeat

This, for an element, will cause multiple instances of that element to be inserted into the DOM.

ng-show & ng-hide

This has a true/false test expression within, that will cause an element on page to appear. If false the element will disappear.

ng-switch

This has a string test expression within and will render the respective ng-case block. It is also possible to supply an ng-default block for when there are no case matches. Unlike traditional programming, cases do not cascade into the next as there is no use of a 'break' statement.

Development Team

Adam Abrons and Miško Hevery developed the first version together in 2009. Adam was a freelancer, and Miško a Googler at the time, both in the San Francisco Bay area. Adam has stepped away from the project for the time being and works at Square in San Francisco (full time). Miško continues with Angular with new co-developers Igor Minár, and Vojta Jína, who like Miško work at Google and were also born in Czechoslovakia.

Releases

  • Jun 25, 2012 - 1.0.1 thorium-shielding
  • Jun 13, 2012 - 1.0 - temporal-domination
  • Jun 12, 2012 - 1.0.0rc12 - "regression-extermination"
  • Jun 11, 2012 - 1.0.0rc11 - "promise-resolution"
  • May 24, 2012 - 1.0.0rc10 - "tesseract-giftwrapping"
  • May 15, 2012 - 1.0.0rc9 - "eggplant-teleportation"
  • May 6, 2012 - 1.0.0rc8 - "blooming-touch"
  • Apr 30, 2012 - 1.0.0rc7 - "rc-generation"
  • Apr 20, 2012 - 1.0.0rc6 - "runny-nose"
  • Apr 12, 2012 - 1.0.0rc5 - "reality-distortion"
  • Apr 6, 2012 - 1.0.0rc4 - "insomnia-induction"
  • Mar 30, 2012 - 1.0.0rc3 - "barefoot-telepathy"
  • Mar 21, 2012 - 1.0.0rc2 - "silence-absorption"
  • Mar 14, 2012 - 1.0.0rc1 - "moiré-vision"
  • Jan 17, 2012 - 0.10.6 - "bubblewrap-cape"
  • Nov 8, 2011 - 0.10.5 - "steel-fist"
  • Aug 21, 2011 - 0.9.19 - "canine-psychokinesis"
  • Jul 29, 2011 - 0.9.18 - "jiggling-armfat"
  • Jun 30, 2011 - 0.9.17 - "vegetable-reanimation"
  • Jun 7, 2011 - 0.9.16 - "weather-control"
  • April 11, 2011 - 0.9.15 - "lethal-stutter"
  • April 1, 2011 - 0.9.14 - "key-maker"
  • Mar 14, 2011 - 0.9.13 - "curdling-stare"
  • Mar 4, 2011 - 0.9.12 - "thought-implanter"
  • Feb 9, 2011 - 0.9.11 - "snow-maker"
  • Feb 1, 2011 - 0.9.10 - "flea-whisperer"
  • Jan 14, 2011 - 0.9.9 - "time-shift"
  • Dec 24, 2010 - 0.9.8 - "astral-projection"
  • Dec 10, 2010 - 0.9.7 - "sonic-scream"
  • Dec 7, 2010 - 0.9.6 - "night vision"
  • Nov 25, 2010 - 0.9.5 - "turkey-blast"
  • Nov 19, 2010 - 0.9.4 - "total-recall"
  • Nov 11, 2010 - 0.9.3 - "cold-resistance"
  • Nov 3, 2010 - 0.9.2 - "faunal-mimicry"
  • Oct 26, 2010 - 0.9.1 - "repulsion-field"
  • Oct 21, 2010 - 0.9.0 - "Dragon Breath"