1. 程式人生 > 實用技巧 >Angular(4) - 英雄編輯器 - 官方教程英雄指南之新增英雄元件 (詳細解說)

Angular(4) - 英雄編輯器 - 官方教程英雄指南之新增英雄元件 (詳細解說)

1 建立英雄元件

ng generate component heroes

2 檢視元件架構 , 從下圖可以很清楚的看出,系統自動生成了4個檔案, 修改了1個檔案。

3 修改heroes.ts如下圖, 增加一個暴露的屬性 hero= 'windstorm'

export class HeroesComponent implements OnInit {

  constructor() { }

  ngOnInit(): void {
  }

  hero = 'Windstorm';

}

4 修改 heroes.html

{{hero}}

5 如何呼叫 app.component.html, 請留意,這裡並不是 <heroes></heroes>
而是 <app-heroes></app-heroes> 。 所以 ,這就是模板語法的約定,必須要加字首,我想是因為可能還在類似app.conponent的頂層元件。

<h1>{{title}}</h1>
<app-heroes></app-heroes>

6 app.module.ts 大家可以看到,cli會自行在最後增加一條import語句

import { HeroesComponent } from './heroes/heroes.component';

7 增加hero實體類,在 src/app 資料夾中為 Hero 類建立一個檔案,並新增 id 和 name 屬性。

export interface Hero {
  id: number;
  name: string;
}

8 使用實體類, 我們在Heroes的元件中暴露一個Hero物件,而並不是之前的一個變數。 hero: Hero

src/app/heroes/heroes.component.ts
import { Component, OnInit } from '@angular/core';
import { Hero } from '../hero';

@Component({
  selector: 'app-heroes',
  templateUrl: './heroes.component.html',
  styleUrls: ['./heroes.component.css']
})
export class HeroesComponent implements OnInit {
  hero: Hero = {
    id: 1,
    name: 'Windstorm'
  };

  constructor() { }

  ngOnInit() {
  }

}

9 修改英雄模板程式碼, 直接使用Hero物件的屬性,這裡可以清楚的看到物件是可以直接使用的,在ng

heroes.component.html (HeroesComponent's template)
<h2>{{hero.name}} Details</h2>
<div><span>id: </span>{{hero.id}}</div>
<div><span>name: </span>{{hero.name}}</div>

10 使用 UppercasePipe 進行格式化, 大家可以看到,英雄的名字變大寫了 這就是管道的作用,後面我們會單獨再寫一篇關於管道的描述。

<h2>{{hero.name | uppercase}} Details</h2>