這篇沒有實作課,只有一些小理論~
整理各種Angular部件
打造可重複利用的元件
產生一個新的Component
的指令
> ng g c test
(ng generate component test)
一共會產生出四個檔案
test.component.css
test.component.html
test.component.ts
test.component.spec.ts
部件的靈魂在test.component.ts
中
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
一個元件必定需要有 selector
、template
這兩樣東西
元件可以沒有css,但不能沒有HTML,因為一個元件需要有畫面View,就要有HTML架構
要引用時,在主樣板引用該元件標籤
<app-test></app-test>
可將特定邏輯或檢核寫在指示中,套在要用到的樣板元素上
產生一個新的Directive
的指令
> ng g d t
(ng generate directive test)
會產生出兩個檔案
test.directive.ts
test.directive.spec.ts
沒有HTML樣板,因為他不是單一個網頁元件,沒有可呈現畫面的空間
部件的靈魂在test.directive.ts
中
@Directive({
selector: '[appTest]'
})
引用方式,在主樣板引用該指示屬性
就像新增一個自訂屬性
<h2 appTest>商店區塊</h2>
可將打API的請求、單一化的實例寫在服務中
產生一個新的Service
的指令
> ng g d t
(ng generate directive test)
會產生出兩個檔案
test.service.ts
test.service.spec.ts
部件的靈魂在test.service.ts
中
@Injectable({
providedIn: 'root'
})
providedIn
的參數可為: 'root'
、'platform'
、'any'
、null
也可省略providedIn
參數,變成只有這樣
引用方式,在要使用到此服務的元件程式的constructor()
中,注入依賴
...
constructor(
public testService: TestService,
) { }
...