Angular是一个用HTML和TypeScript构建客户端应用的平台与框架。Angular本身使用TypeScript写成的。它将核心功能和可选功能作为一组TypeScript库进行实现,你可以把它们导入你的应用中。
Angular的基本构造块是NgModule,它为组件提供了编译的上下文环境。NgModule会把相关的代码收集到一些功能集中。Angular应用就是由一组NgModule定义出的。应用至少会有一个用于引导应用的根模块,通常还会有很多特性模块。
组件定义视图。视图是一组可见的屏幕元素,Angular可以根据你的程序逻辑和数据来选择和修改它们。每个应用都至少有一个根组件。组件使用服务。服务会提供那些与视图不直接相关的功能。服务提供商可以作为依赖被注入到组件中,这能让你的代码更加模块化、可复用,而且高效。模块
Angular定义了NgModule,它和JavaScript(ES)的模块不同而且有一定的互补性。NgModule为一个组件集声明了编译的上下文环境,它专注于某个应用领域、某个工作流或一组紧密相关的能力。NgModule可以将其组件和一组相关代码(如服务)关联起来,形成功能单元。
每个Angular应用都有一个根模块,通常命名为AppModule。根模块提供了用来启动应用的引导机制。一个应用通常会包含很多功能模块。
像JavaScript模块一样,NgModule也可以从其它NgModule中导入功能,并允许导出它们自己的功能供其它NgModule使用。
组件
每个Angular应用都至少有一个组件,也就是根组件,它会把组件树和页面中的DOM连接起来。每个组件都会定义一个类,其中包含应用的数据和逻辑,并与一个HTML模板相关联,该模板定义了一个供目标环境下显示的视图。
模板、指令和数据绑定
模板会把HTML和Angular的标记(markup)组合起来,这些标记可以在HTML元素显示出来之前修改它们。模板中的指令会提供程序逻辑,而绑定标记会把你应用中的数据和DOM连接在一起。
事件绑定让你的应用可以通过更新应用的数据来响应目标环境下的用户输入。属性绑定让你将从应用数据中计算出来的值插入到HTML中。在视图显示出来之前,Angular会先根据你的应用数据和逻辑来运行模板中的指令并解析绑定表达式,以修改HTML元素和DOM。Angular支持双向数据绑定,这意味着DOM中发生的变化(比如用户的选择)同样可以反映回你的程序数据中。
服务于依赖注入
依赖注入(或DI)让你可以保持组件类的精简和高效。有了DI,组件就不用从服务器获取数据、验证用户输入或直接把日志写到控制台,而是会把这些任务委托给服务。
路由
Angular的Router模块提供了一个服务,它可以让你定义在应用的各个不同状态和视图层次结构之间导航时要使用的路径。它的工作模型基于人们熟知的浏览器导航约定:
在地址栏输入URL,浏览器就会导航到相应的页面。在页面中点击链接,浏览器就会导航到一个新页面。点击浏览器的前进和后退按钮,浏览器就会在你的浏览历史中向前或向后导航。-----------------------------------
本人现处广州从事互联网工作多年,资深技术人员、管理人员。愿结识有互联网业务的技术人员或企业人员,Java、C#应用方向、Anglurjs2的朋友交流。