面试题答案
一键面试创建管道类
- 使用Angular CLI生成管道类文件,命令为
ng generate pipe <pipe-name>
,例如ng generate pipe capitalize
。这会在src/app
目录下生成两个文件:capitalize.pipe.ts
和capitalize.pipe.spec.ts
。 - 如果不使用CLI,手动创建管道类,管道类需继承
PipeTransform
接口,示例如下:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'capitalize'
})
export class CapitalizePipe implements PipeTransform {
transform(value: string): string {
if (!value) return '';
return value.charAt(0).toUpperCase() + value.slice(1);
}
}
@Pipe
装饰器用于定义管道的名称,transform
方法接收输入值并返回转换后的值。
在模块中声明管道
打开模块文件(通常是 app.module.ts
),在 declarations
数组中添加自定义管道类,示例如下:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform - browser';
import { AppComponent } from './app.component';
import { CapitalizePipe } from './capitalize.pipe';
@NgModule({
declarations: [
AppComponent,
CapitalizePipe
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
在模板中使用自定义管道
在组件的模板文件(.html
)中使用管道,示例如下:
<p>{{ 'hello world' | capitalize }}</p>
在上述示例中,将字符串 'hello world'
传递给 capitalize
管道,管道会将其首字母大写并显示在页面上。