AngularJS 概述
AngularJS是一个开源的Web应用程序框架。它最初由Misko Hevery和Adam Abrons在2009年开发,现在由Google维护。它的最新版本是1.2.21。
如官方文档所述,AngularJS的定义如下:
- AngularJS是一个用于动态Web应用程序的结构化框架。它允许您使用HTML作为模板语言,并扩展HTML的语法以清晰简洁地表达应用程序组件。它的数据绑定和依赖注入大大减少了您当前需要编写的代码量。而且所有这些都发生在浏览器内部,使它成为任何服务器技术的理想伴侣。
通用特点
AngularJS的通用特点如下:
- AngularJS是一个高效的框架,可以创建丰富的互联网应用程序(RIA)。
-
AngularJS为开发者提供使用JavaScript以清晰的模型视图控制器(MVC)方式编写客户端应用程序的选项。
-
使用AngularJS编写的应用程序在各个浏览器上都是兼容的。AngularJS会自动处理适用于每个浏览器的JavaScript代码。
-
AngularJS是开源的,完全免费,并被世界各地的数千名开发者使用。它在Apache许可证版本2.0下获得了许可。
总体而言,AngularJS是一个用于构建大规模、高性能和易于维护的Web应用程序的框架。
核心特点
AngularJS的核心特点如下:
- Data-binding - 它是模型和视图组件之间的自动数据同步。
-
Scope - 这些是指向模型的对象。它们在控制器和视图之间充当粘合剂。
-
Controller - 这些是绑定到特定作用域的JavaScript函数。
-
Services - AngularJS提供了几个内置服务,如$ http来进行XMLHttpRequest。它们是单例对象,仅在应用程序中实例化一次。
-
Filters - 这些从数组中选择一组子项并返回一个新数组。
-
Directives - 指令是DOM元素上的标记,如元素、属性、css等。它们可以用于创建自定义HTML标签,作为新的自定义小部件。AngularJS具有内置指令,例如ngBind,ngModel等。
-
Templates - 这些是使用控制器和模型信息呈现的视图。它们可以是一个单独的文件(如index.html),也可以是在一个页面中使用部分视图。
-
Routing - 这是切换视图的概念。
-
Model View Whatever - MVW是一种将应用程序分为模型、视图和控制器等不同部分的设计模式,每个部分都有不同的责任。AngularJS在传统意义上并没有实现MVC,而更接近MVVM(Model-View-ViewModel)。Angular JS团队幽默地将其称为模型视图任何内容。
-
Deep Linking - 深度链接允许在URL中对应用程序的状态进行编码,以便可以进行书签。然后可以从URL恢复应用程序到相同的状态。
-
依赖注入 - AngularJS具有内置的依赖注入子系统,帮助开发人员轻松创建、理解和测试应用程序。
概念
以下图示了我们将在后续章节中详细讨论的AngularJS的一些重要部分。
AngularJS的优势
AngularJS的优势包括:
- 它能够以非常干净和易维护的方式创建单页应用。
-
它为HTML提供数据绑定功能。因此,它为用户提供了丰富和响应迅速的体验。
-
AngularJS的代码可以进行单元测试。
-
AngularJS使用依赖注入,并利用关注点分离。
-
AngularJS提供可重用的组件。
-
使用AngularJS,开发人员可以用更少的代码实现更多的功能。
-
在AngularJS中,视图是纯HTML页面,而由JavaScript编写的控制器执行业务处理。
最重要的是,AngularJS应用程序可以运行在所有主要的浏览器和智能手机上,包括基于Android和iOS的手机/平板电脑。
AngularJS的缺点
尽管AngularJS带来了很多优点,但以下是一些值得关注的问题:
- 不安全 - 由于AngularJS是仅JavaScript的框架,使用AngularJS编写的应用程序并不安全。服务器端身份验证和授权是保持应用程序安全的必要条件。
-
不可退化 - 如果用户禁用JavaScript,则除了基本页面外,什么都不会显示。
AngularJS指令
AngularJS框架可以分为三个主要部分:
-
ng-app - 此指令定义并将AngularJS应用程序与HTML关联起来。
-
ng-model - 此指令将AngularJS应用程序数据的值绑定到HTML输入控件。
-
ng-bind - 此指令将AngularJS应用程序数据绑定到HTML标签。