Angular 是一个用 HTML 和 TypeScript 构建客户端应用的平台与框架。Angular 本身使用 TypeScript 写成的。它将核心功能和可选功能作为一组 TypeScript 库进行实现,你可以把它们导入你的应用中。
Angular 的基本构造块是 NgModule,它为组件提供了编译的上下文环境。NgModule 会把相关的代码收集到一些功能集中。Angular 应用就是由一组 NgModule 定义出的。应用至少会有一个用于引导应用的根模块,通常还会有很多特性模块。
组件定义视图。视图是一组可见的屏幕元素,Angular 可以根据你的程序逻辑和数据来选择和修改它们。每个应用都至少有一个根组件。
组件使用服务。服务会提供那些与视图不直接相关的功能。服务提供商可以作为依赖被注入到组件中,这能让你的代码更加模块化、可复用,而且高效。
组件和服务都是简单的类,这些类使用装饰器来标出它们的类型,并提供元数据以告知 Angular 该如何使用它们。
组件类的元数据将组件类和一个用来定义视图的模板关联起来。模板把普通的 HTML 和指令与绑定标记(markup)组合起来,这样 Angular 就可以在呈现 HTML 之前先修改这些 HTML。
服务的元数据提供了一些信息,Angular 要用这些信息来让组件可以通过依赖注入(DI)使用该服务。
Router
服务来帮助你定义视图之间的导航路径。路由器提供了先进的浏览器内导航功能。
回过头来看,其实Angular中的组件也采用了模板引擎的思想,将动态应用的开发大大简化了。当然Angular框架给我们提供的便利绝不仅模板引擎,事实上由于模板引擎的思想越来越流行,几乎所有框架都已采用,但是Angular有更多的灵活性(比如数据模型,它没有限定我们所使用的开发模式是MVP、MVVM还是MVC)。