AngularJS
此条目可参照英语维基百科相应条目来扩充。 (2019年6月18日) |
开发者 | Google Inc.和社区。 |
---|---|
首次发布 | 2010年10月20日[1] |
最终版本 | |
原始码库 | |
编程语言 | JavaScript |
操作系统 | 跨平台,参见旧版浏览器支持 |
文件大小 | 167 KB 生产环境版本 1.2 MB 开发环境版本 |
类型 | JavaScript函数库 |
许可协议 | MIT许可证 |
网站 | angularjs |
AngularJS 是一款由Google维护的开源JavaScript函数库,用来协助单一页面应用程式运行,目前已停止维护[4]。它的目标是透过MVC模式功能增强基于浏览器的应用,使开发和测试变得更加容易。在版本2(全面使用TypeScript)之后改名Angular,第N版以Angular N的形式命名。
函数库读取包含附加自定义(标签属性)的HTML,遵从这些自定义属性中的指令,并将页面中的输入或输出与由JavaScript变量表示的模型绑定起来。这些JavaScript变量的值可以手工设置,或者从静态或动态JSON资源中获取。
Angular的哲学
[编辑]Angular的理念是声明式编程应该用于构建用户界面以及编写软件构建,而指令式编程非常适合来表示业务逻辑。[5]框架采用并扩展了传统HTML,通过双向的数据绑定来适应动态内容,双向的数据绑定允许模型和视图之间的自动同步。因此,Angular使得对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.3.x和1.4.x,更新频率约为每周一次或每两周一次. [6]
旧版浏览器支持
[编辑]Angular在1.2之后的版本不再支持Internet Explorer 6和7.[7]在1.3之后的版本停止对Internet Explorer 8的支持.[8]
和Backbone.js的比较
[编辑]- REST [9]
依赖注入
参考文献
[编辑]- ^ Earliest known releases. [2019-11-15]. (原始内容存档于2017-07-29).
- ^ Release 1.8.3. 2022年4月7日 [2022年7月29日].
- ^ 1.8.3 ultimate-farewell (2022-04-07).
- ^ AngularJS. docs.angularjs.org. [2022-07-14]. (原始内容存档于2022-03-16).
- ^ What Is Angular?. [12 February 2013]. (原始内容存档于2013-05-20).
- ^ angular.js CHANGELOG. [2015-06-18]. (原始内容存档于2015-05-13).
- ^ AngularJS: Developer Guide: Internet Explorer Compatibility. Google. [2014-10-12]. (原始内容存档于2014-10-17).
- ^ Minar, Igor. AngularJS 1.3: a new release approaches. AngularJS Blog. [2014-10-12]. (原始内容存档于2014-12-08).
- ^ Javascript Frameworks And Data Binding. [13 February 2013]. (原始内容存档于2014年8月24日).
延伸阅读
[编辑]- Green, Brad; Seshadri, Shyam. AngularJS 1st. O'Reilly Media. March 22, 2013: 150 [2019-11-15]. ISBN 978-1449344856. (原始内容存档于2019-11-15).