AngularJS(带有MVC模式的开源javascript框架)
AngularJS
开发者Google Inc.和社区。初始版本2009年稳定版本1.0.7 / 2013年5月22日;7个月前开发状态活跃编程语言JavaScript操作系统跨平台文件大小78.4KB 产品
479KB 开发类型JavaScript函式库许可协议MIT许可证网站www.angularjs.org
AngularJS是一款开源 JavaScript函式库,由Google维护, 众所周知地作为单一页面应用运作协助的。它的目标是增强基于浏览器的应用,并带有MVC模式 (MVC) 功能,这为了使得开发和测试变得更加容易。
函式库读取包含附加自定义(标签属性)的HTML, 遵从这些自定义属性中的指令,并将页面中的输入或输出与由JavaScript变量表示的模型绑定起来。这些JavaScript变量的值可以手工设置,或者从静态或动态JSON资源中获取。
Angular的哲学
AngularJS是建立在这样的信念上的:即声明式编程应该用于构建用户界面以及编写软件构建,而指令式编程非常适合来表示业务逻辑。[1] 框架采用并扩展了传统HTML,通过双向的数据绑定来适应动态内容,双向的数据绑定允许模型和视图之间的自动同步。因此,AngularJS使得对DOM的操作不再重要并提升了可测试性。
设计目标:
- 将应用逻辑与对DOM的操作解耦。这会提高代码的可测试性。
- 将应用程序的测试看的跟应用程序的编写一样重要。代码的构成方式对测试的难度有巨大的影响。
- 将应用程序的客户端与服务器端解耦。这允许客户端和服务器端的开发可以齐头并进,并且让双方的复用成为可能。
- 指导开发者完成构建应用程序的整个历程: 从用户界面的设计,到编写业务逻辑,再到测试。
Angular遵循软件工程的MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合.通过依赖注入(dependency injection),Angular为客户端的Web应用带来了传统服务端的服务,例如独立于视图的控制。 因此,后端减少了许多负担,产生了更轻的Web应用。
Angular主要的指令
双向数据绑定
Angular在呈现和资料中间,可以简单建立双向的数据绑定。
一但建立双向绑定。
使用者输入,会由Angular自动传到一个变量中,再自动读到所有绑到它的内容,更新它。效果上就是立即的资料同步。 在程式码中修改变量,也会直接反应到呈现的外观上。
不仅内容可以双向绑定,其他诸如类别、宽度、高度等等,都可以和变量与使用者的输入,绑定起来。
开发历史
AngularJS在2009年起先由Miško Hevery和Adam Abrons开发,作为在线JSON存储服务的软件,是以兆字节来计价,从而便于成为企业的应用。这个风投是以网络域名"GetAngular.com"注册的, 有些注册用户,在两人决定放弃这个商业想法之前,它作为一个开源库Angular许可发行。
Abrons离开了这个计划,但在Google工作的Hevery和一些谷歌员工Igor Minár和Vojta Jína等继续开发和维护这个库。
发行
发行1.0.x是现在稳定版本, 同时,1.1.x可能含有breaking changes 在小的发行上(例如 1.1.x – 1.1.y).[2]
和Backbone.js的比较
Data-binding数据绑定[3]REST [4]Templating模板 [3]参照
- ^ What Is Angular?. [12 February 2013].
- ^ AngularJS 1.0 -> 1.2 Roadmap. blog.angularjs.org. July 26, 2012 [2013-04-27].
- ^ 3.0 3.1 Backbonejs vs Angularjs: Demystifying the myths. [13 February 2013].
- ^ Javascript Frameworks And Data Binding. [13 February 2013].
继续阅读
- Green, Brad; Seshadri, Shyam. AngularJS 1st. O'Reilly Media. March 22, 2013. 150. ISBN 978-1449344856.
外部链接
AngularJS是Google开源的一款JavaScript MVC框架,弥补了HTML在构建应用方面的不足,其通过使用指令(directives)结构来扩展HTML词汇,使开发者可以使用HTML来声明动态内容,从而使得Web开发和测试工作变得更加容易。
AngularJS诞生以来,吸引了大量的目光,也迅速成为了Web开发领域的新宠。本文整理了2013年度一些非常有价值的AngularJS相关教程和资源,如果你想了解AngularJS或正在使用AngularJS,那么这些资源肯定会为你的学习和进阶过程带来帮助。
一、了解AngularJS
AngularJS维基百科
专访AngularJS框架创始人Misko Hevery
Angular.js VS. Ember.js:谁将成为Web开发的新宠?
二、中文资源
1. 中文系列资源
AngularJS系列教程文章 – 大漠穷秋
AngularJS入门系列教程 – AngularJS中文社区
AngularJS学习笔记 – 邹业盛
AngularJS精彩问答 - 知乎
2. 其他单篇文章
AngularJS 最佳实践
有jQuery背景的开发者如何建立起AngularJS的思维模式?
现在就开始使用AngularJS的三个重要原因
使用AngularJS构建大型Web应用
Angularjs开发一些经验总结
5个示例带你学习AngularJS
3. 中文书籍
《使用AngularJS开发下一代WEB应用》
三、英文资源
1. AngularJS入门教程
AngularJS傻瓜教程系列
AngularJS移动开发权威指南
AngularJS 30分钟入门
60分钟掌握AngularJS
在你的AngularJS应用中建模数据
使用$https创建服务
了解AngularJS的5个步骤
AngularJS和RequireJS的动态加载控制器和视图
先进的设计模式和最佳实践
AngularJS动画
AngularJS Factory与RESTful服务的交互
使用Angular.js Factory获取远程数据
使用AngularJS的10个理由
AngularJS中Providers之间的差异
AngularJS过滤
针对jQuery开发者的AngularJ教程
Web开发者应该了解AngularJS的10个理由
Angular Js:何时应该使用Directive、Controller和Service?
30秒从jQuery转到AngularJS
2. AngularJS指令学习
为jQuery插件构建AngularJS指令
为D3.js条形图构建AngularJS指令
www.directiv.es:AngularJS指令库
Angular-localStorage
Videogular:一个基于AngularJS的HTML5视频播放器
Angular-cache
可用于Twitter Bootstrap的Angular指令
Angular的图表指令和服务
表排序
3. AngularJS应用开发实战
通过示例学习AngularJS——客户管理应用程序
AngularJS和IndexedDB结合使用
AngularJS:构建一个可重用的点击编辑指令
Play、Akka、AngularJS和Elasticsearch打造的实时日志搜索功能
使用Firebase和AngularJS打造自己的Google Reader
使用Phonegap、AngularJS和ExpressJS开发一个移动App
BirdWatch v0.2:基于AngularJS、ElasticSearch和Play Framework的Tweet流分析工具
基于Solr和AngularJS的即时搜索工具
Sortis:高级用户的Twitter客户端,初学者的跳板
可定制的Twitter AngularJS时间轴
AngularJS指令设计更轻松
4. AngularJS游戏开发
基于CoffeeScript和AngularJS的画圈打叉游戏
超级马里奥卡片翻转游戏
5. AngularJS工作流程和测试
AngularJS的测试策略 [视频]
使用Combining Yeoman、AngularJS和Cordova开发移动App
介绍Angular、Yeoman和Chrome应用程序 [视频]
使用Jasmine测试Angular.js应用
使用AngularJS和Karma进行全谱系测试
使用Grunt插件创建AngularJS文档
ng-boilerplate:新的AngularJS项目的样板
基于AngularJS的Chrome Web检查器扩展
在Sublime Text中使用AngularJS包
6. AngularJS书籍
《AngularJS in Action》
《The Beginner’s guide to AngularJS》
《Mastering Web Application Development with AngularJS》
英文资源出处:Syntaxspectrum。希望上述资源可以为你在2014年深入学习AngularJS带来帮助。