AngularJS是一个开源的Web应用程序框架.它最初由Misko Hevery和Adam Abrons于2009年开发.它现在由谷歌维护.它的最新版本是1.2.21.
AngularJS的定义由它的官方文档如下 :
AngularJS是动态Web应用程序的结构框架.它允许您使用HTML作为模板语言,并允许您扩展HTML的语法,以清晰简洁地表达您的应用程序组件.它的数据绑定和依赖注入消除了您当前必须编写的大部分代码.这一切都发生在浏览器中,使其成为任何服务器技术的理想合作伙伴.
AngularJS的一般功能如下 :
AngularJS是一个可以创建富Internet应用程序(RIA)的高效框架.
AngularJS为开发人员提供了一种以简洁的模型视图控制器(MVC)方式使用JavaScript编写客户端应用程序的选项.
用AngularJS编写的应用程序符合跨浏览器标准. AngularJS自动处理适合每个浏览器的JavaScript代码.
AngularJS是开源的,完全免费,并被全球数千名开发人员使用.它是在Apache许可证版本2.0下许可的.
总的来说,AngularJS是一个构建大规模,高性能和易于使用的框架 - 维护网络应用程序.
AngularJS的核心功能如下 :
数据绑定 : 它是模型和视图组件之间数据的自动同步.
范围 : 这些是引用模型的对象.它们充当控制器和视图之间的粘合剂.
控制器 : 这些是绑定到特定范围的JavaScript函数.
服务 : AngularJS附带了几个内置服务,例如$ http来制作XMLHttpRequests.这些是单例对象,只在app中实例化一次.
过滤器 : 这些从数组中选择项目的子集并返回一个新数组.
指令 : 指令是DOM元素的标记,例如元素,属性,css等.这些可用于创建自定义HTML标记,用作新的自定义窗口小部件. AngularJS具有内置指令,如ngBind,ngModel等.
模板 : 这些是包含来自控制器和模型的信息的渲染视图.这些可以是单个文件(例如index.html)或使用 partials 在一个页面中的多个视图.
路由 : 这是切换视图的概念.
模型视图无论什么 : MVW是一种设计模式,用于将应用程序划分为称为模型,视图和控制器的不同部分,每个部分都有不同的职责. AngularJS没有实现传统意义上的MVC,而是更接近MVVM(Model-View-ViewModel). Angular JS团队将其幽默地称为Model View Whatever.
深度链接 : 深层链接允许对URL中的应用程序状态进行编码,以便对其进行书签.然后,应用程序可以从URL恢复到相同的状态.
依赖注入 : AngularJS有一个内置的依赖注入子系统,可以帮助开发人员轻松创建,理解和测试应用程序.
下图描绘了AngularJS的一些重要部分,我们将在后续章节中详细讨论.
AngularJS的优点是 :
它提供了以非常干净和可维护的方式创建单页应用程序的功能.
它为HTML提供数据绑定功能.因此,它为用户提供了丰富的响应体验.
AngularJS代码可以单元测试.
AngularJS使用依赖注入并利用关注点分离.
AngularJS提供可重用的组件.
使用AngularJS,开发人员可以使用短代码实现更多功能.
在AngularJS中,视图是纯html页面,而控制器是用JavaScript进行业务处理.
除此之外,AngularJS应用程序可以在所有主流浏览器和智能手机上运行,包括Android和基于iOS的手机/平板电脑.
虽然AngularJS具有很多优点,但这里有一些值得关注和减去;
不安全 : 作为仅JavaScript的框架,用AngularJS编写的应用程序并不安全.服务器端身份验证和授权必须保证应用程序的安全.
不可降级 : 如果您的应用程序的用户禁用了JavaScript,那么除了基本页面之外什么也看不见.
AngularJS框架可分为三个主要部分 :
ng-app : 该指令定义AngularJS应用程序并将其链接到HTML.
ng-model : 该指令将AngularJS应用程序数据的值绑定到HTML输入控件.
ng-bind : 该指令将AngularJS应用程序数据绑定到HTML标记.