开发者 | Google Inc.和社区。 |
---|---|
首次发布 | 2010年10月20日[1] |
稳定版本 | 1.8.2 (2020年10月21日[2]) |
编程语言 | JavaScript |
操作系统 | 跨平台,参见旧版浏览器支持 |
文件大小 | 167 KB 生产环境版本 1.2 MB 开发环境版本 |
类型 | JavaScript函数库 |
许可协议 | MIT许可证 |
网站 | angularjs |
AngularJS是一款由Google维护的开源JavaScript函数库,用来协助单一页面应用程序运行。它的目标是透过MVC模式(MVC)功能增强基于浏览器的应用,使开发和测试变得更加容易。在版本2(全面使用TypeScript)之后改名Angular,第N版以Angular N的形式命名。
函数库读取包含附加自定义(标签属性)的HTML,遵从这些自定义属性中的指令,并将页面中的输入或输出与由JavaScript变量表示的模型绑定起来。这些JavaScript变量的值可以手工设置,或者从静态或动态JSON资源中获取。
Angular的哲学
Angular的理念是声明式编程应该用于构建用户界面以及编写软件构建,而指令式编程非常适合来表示业务逻辑。[3]框架采用并扩展了传统HTML,通过双向的数据绑定来适应动态内容,双向的数据绑定允许模型和视图之间的自动同步。因此,Angular使得对DOM的操作不再重要并提升了可测试性。
设计目标:
- 将应用逻辑与对DOM的操作解耦。这会提高代码的可测试性。
- 将应用程序的测试看的跟应用程序的编写一样重要。代码的构成方式对测试的难度有巨大的影响。
- 将应用程序的客户端与服务端解耦。这允许客户端和服务端的开发可以齐头并进,并且让双方的复用成为可能。
- 指导开发者完成构建应用程序的整个历程:从用户界面的设计,到编写业务逻辑,再到测试。
Angular遵循软件工程的MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合。通过依赖注入(dependency injection),Angular为客户端的Web应用带来了传统服务端的服务,例如独立于视图的控制。因此,后端减少了许多负担,产生了更轻的Web应用。
双向数据绑定
Angular在呈现和资料中间,可以简单创建双向的数据绑定。一旦创建双向绑定,用户输入,会由Angular自动传到一个变数中,再自动读到所有绑到它的内容,更新它。效果上就是立即的资料同步。在代码中修改变数,也会直接反应到呈现的外观上。不仅内容可以双向绑定,其他诸如类别、宽度、高度等等,都可以和变数与用户的输入,绑定起来。
开发历史
AngularJS在2009年由Miško Hevery和Adam Abrons开发,作为线上JSON储存服务的软件,它是以兆比特来计价,便于成为企业的应用服务。当初以"GetAngular.com"注册网域,但由于只有少量的注册用户,在两人决定放弃这个商业想法前,就把Angular开源了。
Abrons后来离开了这个计划,但在Google工作的Hevery和一些谷歌员工如Igor Minár和Vojta Jína等则继续开发维护此函数库。
发行
目前有两个正在维护的稳定版本:1.3.x和1.4.x,更新频率约为每周一次或每两周一次.[4]
旧版浏览器支持
Angular在1.2之后的版本不再支持Internet Explorer 6和7.[5]在1.3之后的版本停止对Internet Explorer 8的支持.
和Backbone.js的比较
- REST [6]
依赖注入
参考文献
- ↑ Earliest known releases. [2019-11-15].
- ↑ Release 1.8.2. GitHub. [2020-10-21].
- ↑ What Is Angular?. [2013-02-12].
- ↑ angular.js CHANGELOG. [2015-06-18].
- ↑ AngularJS: Developer Guide: Internet Explorer Compatibility. Google. [2014-10-12].
- ↑ Javascript Frameworks And Data Binding. [2013-02-13].
延伸阅读
- Green, Brad; Seshadri, Shyam. AngularJS 1st. O'Reilly Media. 2013-03-22: 150 [2019-11-15]. ISBN 978-1449344856.
外部链接
- 官方网站
- 在Google Groups上的AngularJS
- 在Google+上的AngularJS
- Github上AngularJS Batarang Chrome plugin