透過Pipe,可以不用在Component端寫程式改變資料的顯示模式,而是透過 Pipe 的模式來調整要顯示的資料內容,如此一來我們就不用在 Component中花太多心思去關注內容該如何呈現,再次達到關注點分離的效果
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
// uppercase 為 Angular 內建
template: '<p>My name is <strong>{{ name | uppercase }}</strong>.</p>',
})
export class AppComponent {
name = 'john doe';
}
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'exponential'
})
export class ExponentialPipe implements PipeTransform {
transform(value: number, exponent: string): number {
let exp = parseFloat(exponent);
return Math.pow(value, isNaN(exp) ? 1 : exp);
}
}