这是 Angular官网 提供的一个项目教程。
设计
主要包含3个页面:
- Dashboard
- Heroes List
- Hero Detail
准备项目
创建项目
ng new angular-tour-of-heroes
启动应用服务器
ng serve --open
修改标题
- 在
app.component.ts
(用typescript编写),修改title值
- 在
app.component.html
中修改标题:<h1>Angular: Heroes</h1>
修改后保存即可,浏览器自动刷新
添加样式
在src/style.css
中修改全局样式
英雄
创建组件
ng generate component heroes
- 创建了
src/app/heroes
文件夹 - 在该文件夹下创建了html/ts/css等文件
添加hero属性并显示
- 在
heroes.component.ts
中的HeroesComponent.ts
类中添加hero
属性; - 在
heroes.component.html
中显示<h2></h2>
显示HeroComponent
把<app-heroes></app-heroes>
添加进app.component.html
中即可
创建hero类
- 在
src/app
目录下新建hero.ts
文件,定义并exportHero
类 - 再修改
heroes.component.ts
中hero
属性,使其成为Hero
类的一个实例 - 并在
hero.component.html
中修改显示hero
的HTML代码 - 利用管道进行格式化
name的可编辑
- 需要将name双向绑定:
<input [(ngmodule)]="hero.name" placeholder="name">
- 需要在项目中导入
FormModule
英雄列表
- 在
src/app
下创建一个模拟英雄列表的文件mock-heroes.ts
,并在heroes.component.ts
中引入 - 在
heroes.component.html
中用*ngFor
去循环显示英雄列表 - 在
heroes.component.css
中定义css文件 - 在
heroes.component.html
中用(click)="onSelect(hero)"
来定义单击事件 - 在
heroes.component.html
中用*ngIf
来显示/隐藏HTML代码 - 在
heroes.component.html
中用[class.selected]="selectedHero === hero"
来控制是否添加select
类
英雄和英雄列表页面拆分
- 创建英雄详情组件:
ng generate component hero-detail
- 将关于英雄详情的HTML代码挪动至:
hero-detail.component.html
- 在
heroes.component.html
中添加hero-detail
组件并绑定selected数据<app-hero-detail [hero]="seletecHero"></app-hero-detail>
- 在
hero-detail.component.ts
中用@Input() hero: Hero;
声明hero
为绑定的外部数据