AngularJS 是一款由Google维护的开源JavaScript函数库,用来协助单一页面应用程式运行,目前已停止维护[4]。它的目标是透过MVC模式功能增强基于浏览器的应用,使开发和测试变得更加容易。在版本2(全面使用TypeScript)之后改名Angular,第N版以Angular N的形式命名。

AngularJS
开发者Google Inc.和社区。
首次发布2010年10月20日,​14年前​(2010-10-20[1]
最终版本
  • 1.8.3(2022年4月7日)[2][3]
编辑维基数据链接
原始码库 编辑维基数据链接
编程语言JavaScript
操作系统跨平台,参见旧版浏览器支持
文件大小167 KB 生产环境版本
1.2 MB 开发环境版本
类型JavaScript函数库
许可协议MIT许可证
网站angularjs.org

函数库读取包含附加自定义(标签属性英语HTML_attribute)的HTML,遵从这些自定义属性中的指令,并将页面中的输入或输出与由JavaScript变量表示的模型绑定起来。这些JavaScript变量的值可以手工设置,或者从静态或动态JSON资源中获取。

Angular的哲学

 
Angular 2应用程式的体系结构。 主要构建块是模块,组件,模板,元数据,数据绑定,指令,服务和依赖注入。

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]


依赖注入

参考文献

  1. ^ Earliest known releases. [2019-11-15]. (原始内容存档于2017-07-29). 
  2. ^ Release 1.8.3. 2022年4月7日 [2022年7月29日]. 
  3. ^ 1.8.3 ultimate-farewell (2022-04-07). 
  4. ^ AngularJS. docs.angularjs.org. [2022-07-14]. (原始内容存档于2022-03-16). 
  5. ^ What Is Angular?. [12 February 2013]. (原始内容存档于2013-05-20). 
  6. ^ angular.js CHANGELOG. [2015-06-18]. (原始内容存档于2015-05-13). 
  7. ^ AngularJS: Developer Guide: Internet Explorer Compatibility. Google. [2014-10-12]. (原始内容存档于2014-10-17). 
  8. ^ Minar, Igor. AngularJS 1.3: a new release approaches. AngularJS Blog. [2014-10-12]. (原始内容存档于2014-12-08). 
  9. ^ Javascript Frameworks And Data Binding. [13 February 2013]. (原始内容存档于2014年8月24日). 

延伸阅读

外部链接