AngularJS: Difference between revisions
change last stable release to 1.0 |
No edit summary |
||
Line 5: | Line 5: | ||
| released = {{Start date|2009}} |
| released = {{Start date|2009}} |
||
| status = Active |
| status = Active |
||
| latest release version = 1.0 |
| latest release version = 1.0.1 |
||
| latest release date = {{Start date and age|2012|06| |
| latest release date = {{Start date and age|2012|06|25}} |
||
| operating system = [[Cross-platform]] |
| operating system = [[Cross-platform]] |
||
| programming language = [[JavaScript]] |
| programming language = [[JavaScript]] |
Revision as of 00:48, 26 June 2012
Developer(s) | Google Inc. and community. |
---|---|
Initial release | 2009 |
Stable release | 1.0.1
/ June 25, 2012 |
Repository | |
Written in | JavaScript |
Operating system | Cross-platform |
License | MIT License |
Website | www |
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 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"
External links
- AngularJS homepage http://www.angularjs.org/