Angular for TypeScript 语法快速指南 (基于2.0.0版本)
| 引导 |
|
|---|---|
platformBrowserDynamic().bootstrapModule(AppModule); |
使用JIT编译器引导一个AppModule模块定义的应用 |
| NgModules |
|
|---|---|
@NgModule({ declarations: ..., imports: ..., |
定义一个模块,其中包括组件、指令、管道和提供商。 |
declarations: [MyRedComponent, MyBlueComponent, MyDatePipe] |
一个数组,包括从属于当前模块的组件、指令和管道。 |
imports: [BrowserModule, SomeOtherModule] |
一个数组,包括被导入到当前模块中的所有模块。来自被导入模块的 |
exports: [MyRedComponent, MyDatePipe] |
一个数组,包括对导入当前模块的模块可见的组件、指令、管道。 |
providers: [MyService, { provide: ... }] |
一个数组,包括在对前模块及导入当前模块的模块中的内容物(组件、指令、管道、提供商等)可见的依赖注入提供商。 |
bootstrap: [MyAppComponent] |
一个数组,包括由当前模块引导时应该引导的组件 |
| 模板语法 | |
|---|---|
<input [value]="firstName"> |
把属性 |
<div [attr.role]="myAriaRole"> |
把 |
<div [class.extra-sparkle]="isDelightful"> |
把元素是否出现CSS类 |
<div [style.width.px]="mySize"> |
把样式的 |
<button (click)="readRainbow($event)"> |
当按钮(及其子元素)上的click事件被触发时,调用 |
<div title="Hello {{ponyName}}"> |
把属性绑定到一个插值表达式字符串,比如 "Hello Seabiscuit"。它等价于: |
<p>Hello {{ponyName}}</p> |
把文本内容绑定到一个插值表达式,比如 "Hello Seabiscuit". |
<my-cmp [(title)]="name"> |
设置双向数据绑定。等价于: |
<video #movieplayer ...> |
创建一个局部变量 |
<p *myUnless="myExpression">...</p> |
|
<p>Card No.: {{cardNumber | myCardNumberFormatter}}</p> |
通过名叫 |
<p>Employer: {{employer?.companyName}}</p> |
安全导航运算符( |
<svg:rect x="0" y="0" width="100" height="100"/> |
SVG模板需要在它们的根节点上带一个 |
<svg> |
|
| 内置指令 |
|
|---|---|
<section *ngIf="showSection"> |
基于showSection表达式的值移除或重新创建部分DOM树。 |
<li *ngFor="let item of list"> |
把li元素及其内容转化成一个模板,并用它来为列表中的每个条目初始化视图。 |
<div [ngSwitch]="conditionExpression"> |
基于conditionExpression的当前值,从内嵌模板中选取一个,有条件的切换div的内容。 |
<div [ngClass]="{active: isActive, disabled: isDisabled}"> |
把一个元素上CSS类的出现与否,绑定到一个真值映射表上。右侧的表达式应该返回类似{class-name: true/false}的映射表。 |
| 表单 |
|
|---|---|
<input [(ngModel)]="userName"> |
提供双向绑定,为表单控件提供解析和验证。 |
| 类装饰器 |
|
|---|---|
@Component({...}) |
声明当前类是一个组件,并提供关于该组件的元数据。 |
@Directive({...}) |
声明当前类是一个指令,并提供关于该指令的元数据。 |
@Pipe({...}) |
声明当前类是一个管道,并且提供关于该管道的元数据。 |
@Injectable() |
声明当前类有一些依赖,当依赖注入器创建该类的实例时,这些依赖应该被注入到构造函数中。 |
| 指令配置 |
|
|---|---|
selector: '.cool-button:not(a)' |
指定一个CSS选择器,以便在模板中找出该指令。支持的选择器包括 不支持父子关系选择器。 |
providers: [MyService, { provide: ... }] |
为当前指令及其子指令提供依赖注入的providers数组。 |
| 组件配置 |
|
|---|---|
moduleId: module.id |
如果设置了, |
viewProviders: [MyService, { provide: ... }] |
依赖注入provider的数组,局限于当前组件的视图中。 |
template: 'Hello {{name}}' |
当前组件视图的内联模板或外部模板地址 |
styles: ['.primary {color: red}'] |
内联CSS样式或外部样式表URL的列表,用于给组件的视图添加样式。 |
| 供指令类或组件类用的字段装饰器。 |
|
|---|---|
@Input() myProperty; |
声明一个输入属性,以便我们可以通过属性绑定更新它。(比如: |
@Output() myEvent = new EventEmitter(); |
声明一个输出属性,以便我们可以通过事件绑定进行订阅。(比如: |
@HostBinding('[class.valid]') isValid; |
把宿主元素的属性(比如CSS类:valid)绑定到指令/组件的属性(比如:isValid)。 |
@HostListener('click', ['$event']) onClick(e) {...} |
通过指令/组件的方法(例如onClick)订阅宿主元素的事件(例如click),可选传入一个参数($event)。 |
@ContentChild(myPredicate) myChildComponent; |
把组件内容查询(myPredicate)的第一个结果绑定到类的myChildComponent属性。 |
@ContentChildren(myPredicate) myChildComponents; |
把组件内容查询(myPredicate)的全部结果,绑定到类的myChildComponents属性。 |
@ViewChild(myPredicate) myChildComponent; |
把组件视图查询(myPredicate)的第一个结果绑定到类的myChildComponent属性。对指令无效。 |
@ViewChildren(myPredicate) myChildComponents; |
把组件视图查询(myPredicate)的全部结果绑定到类的myChildComponents属性。对指令无效。 |
| 指令和组件的变更检测与生命周期钩子 |
(作为类方法实现) |
|---|---|
constructor(myService: MyService, ...) { ... } |
类的构造函数会在所有其它生命周期钩子之前调用。使用它来注入依赖,但是要避免用它做较重的工作。 |
ngOnChanges(changeRecord) { ... } |
在输入属性每次变化了之后、开始处理内容或子视图之前被调用。 |
ngOnInit() { ... } |
在执行构造函数、初始化输入属性、第一次调用完ngOnChanges之后调用。 |
ngDoCheck() { ... } |
每当检查组件或指令的输入属性是否变化时调用。通过它,可以用自定义的检查方式来扩展变更检测逻辑。 |
ngAfterContentInit() { ... } |
当组件或指令的内容已经初始化、ngOnInit完成之后调用。 |
ngAfterContentChecked() { ... } |
在每次检查完组件或指令的内容之后调用。 |
ngAfterViewInit() { ... } |
当组件的视图已经初始化完毕,每次ngAfterContentInit之后被调用。只适用于组件。 |
ngAfterViewChecked() { ... } |
每次检查完组件的视图之后调用。只适用于组件。 |
ngOnDestroy() { ... } |
在所属实例被销毁前,只调用一次。 |
| 依赖注入配置 | |
|---|---|
{ provide: MyService, useClass: MyMockService } |
把MyService类的提供商设置或改写为MyMockService。 |
{ provide: MyService, useFactory: myFactory } |
把MyService的提供商设置或改写为myFactory工厂函数。 |
{ provide: MyValue, useValue: 41 } |
把MyValue的提供商设置或改写为值41。 |
| 路由与导航 |
|
|---|---|
const routes: Routes = [ |
为应用配置路由。支持静态、参数化、重定向和通配符路由。还支持自定义路由数据和解析。 |
|
标记一个位置,用于加载当前激活路由的组件。 |
|
基于路由指令创建指向不同视图的链接,由路由路径、必选参数、可选参数、查询参数和片段(fragment)组成。添加“/”前缀可以导航到根路由。添加“./”前缀可以导航到子路由。添加“../sibling”前缀可以导航到兄弟路由或父路由。 |
<a [routerLink]="[ '/path' ]" routerLinkActive="active"> |
当 |
class CanActivateGuard implements CanActivate { |
一个用来定义类的接口,路由器会首先调用它来决定是否应该激活该组件。应该返回布尔值或能解析为布尔值的可观察对象(Observable)或承诺(Promise)。 |
class CanDeactivateGuard implements CanDeactivate<T> { |
一个用来定义类的接口,路由器在导航后会首先调用它来决定是否应该取消该组件的激活状态。应该返回布尔值或能解析为布尔值的可观察对象(Observable)或承诺(Promise)。 |
class CanActivateChildGuard implements CanActivateChild { |
一个用来定义类的接口,路由器会首先调用它来决定是否应该激活该子路由。应该返回布尔值或能解析为布尔值的可观察对象(Observable)或承诺(Promise)。 |
class ResolveGuard implements Resolve<T> { |
一个用来定义类的接口,路由器会在渲染该路由之前先调用它来解析路由数据。应该返回一个值或能解析为值的可观察对象(Observable)或承诺(Promise)。 |
class CanLoadGuard implements CanLoad { |
一个用来定义类的接口,路由器会首先调用它来决定一个惰性加载的模块是否应该被加载。应该返回布尔值或能解析为布尔值的可观察对象(Observable)或承诺(Promise)。 |
Angular for TypeScript 语法快速指南 (基于2.0.0版本)的更多相关文章
- 翻译:Angular 2 - TypeScript 5 分钟快速入门
原文地址:https://angular.io/docs/ts/latest/quickstart.html Angular 2 终于发布了 beta 版.这意味着正式版应该很快就要发布了. 让我们使 ...
- Emacs 快速指南(中文翻译)
Emacs 快速指南 目录 1. 小结(SUMMARY) 2. 基本的光标控制(BASIC CURSOR CONTROL) 3. 如果 EMACS 失去响应(IF EMACS STOPS RESP ...
- Emacs 快速指南 - 原生中文手册
Emacs 快速指南 -折叠目录 1. 小结(SUMMARY) 2. 基本的光标控制(BASIC CURSOR CONTROL) 3. 如果 EMACS 失去响应(IF EMACS STOPS RES ...
- Objective-C基础语法快速入门
Objective-C基础语法快速入门 2010-11-04 16:32 折酷吧 zheku8 字号:T | T 假如我们对面向对象的思维已经C语言都很熟悉的话,对于我们学习Objective-C将会 ...
- 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南
[SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https ...
- typescript语法
先来讲一讲TypeScript出现的背景 前端javascript的编程思想与后端java面向对象的编程思想有很大的不同,微软公司借鉴了coffeescript语言,继承了很多C#和java的编程思想 ...
- 从 C++ 到 Objective-C 的快速指南
简介 当我开始为iOS写代码的时候,我意识到,作为一个C++开发者,我必须花费更多的时间来弄清楚Objective-C中怪异的东西.这就是一个帮助C++专家的快速指南,能够使他们快速的掌握Apple的 ...
- 使用MySQL Yum存储库的快速指南【mysql官方文档】
使用MySQL Yum存储库的快速指南 抽象 MySQL Yum存储库提供用于在Linux平台上安装MySQL服务器,客户端和其他组件的RPM包.这些软件包还可以升级和替换从Linux发行版本机软件存 ...
- [译] MongoDB Java异步驱动快速指南
导读 mongodb-java-driver是mongodb的Java驱动项目. 本文是对MongoDB-java-driver官方文档 MongoDB Async Driver Quick Tour ...
随机推荐
- 前端 javascript 变量
变量: python: name = 'alex' JavaScript: name = 'alex' # 全局变量 声明var var name = 'eric' # 局部变量 写全局变量基本好少J ...
- 003-SpringBoot导入xml配置
SpringBoot理念就是零配置编程,但是如果绝对需要使用XML的配置,我们建议您仍旧从一个@Configuration类开始,你可以使用@ImportResouce注解加载XML配置文件,我拿一个 ...
- 网站实时信息采集和统计graphite
Graphite 是一个Python写的web应用,采用django框架,Graphite用来进行收集服务器所有的即时状态,用户请求信息,Memcached命中率,RabbitMQ消息服务器的状态,U ...
- 我与前端之间不得不说的三天两夜之jQuery
前端基础之jquery 一 jQuery是什么? [1] jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. [2] jQuery是 ...
- POJ 3905 Perfect Election (2-SAT 判断可行)
题意:有N个人参加选举,有M个条件,每个条件给出:i和j竞选与否会只要满足二者中的一项即可.问有没有方案使M个条件都满足. 分析:读懂题目即可发现是2-SAT的问题.因为只要每个条件中满足2个中的一个 ...
- iOS 机智的修改导航栏返回事件
只需要一个在自定义的基类控制器的UIBarButtonItem,在需要的时候继承该类,实现selector方法即可(如果大部分处理都是一样的,只需在基类控制器内实现操作). self.navigati ...
- Mysql 数据类型及选择原则
MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. 数据库类型的选择对数据库的性能影响很大 1 . 数据类型会影响存储空间的开销 2 . 数据类型会影响 ...
- Web安全学习笔记之Kali部署DVWA和OWASPBWA
0x0 前言 kali安装完成,下面要进行实战操作了,喵~~(OWASPBWA请直接跳到第八部分) #既然你诚心诚意的问了,我们就大发慈悲的告诉你! #为了防止世界被破坏! #为了守护世界的和平! # ...
- Swoole学习(四)Swoole之简单WEB服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建WEB服务器 $host = '0.0.0.0'; $port = ; $server = new swoole_http_s ...
- hadoop yarn HA集群搭建
可先完成hadoop namenode HA的搭建:http://www.cnblogs.com/kisf/p/7458519.html 搭建yarnde HA只需要在namenode HA配置基础上 ...