我正在创建动态管道以格式化表格组件列 dynamic.pipe.ts
import {
Injector,
Pipe,
PipeTransform
} from '@angular/core';
import { MomentPipe } from './moment.pipe';
@Pipe({
name: 'dynamicPipe',
})
export class DynamicPipe implements PipeTransform {
public constructor(private injector: Injector, private momentPipe: MomentPipe) {
}
transform(value: any, pipeToken: any, pipeArgs: any[]): any {
if (!pipeToken) {
return value;
}
else {
const pipe = this.injector.get<any>(pipeToken);
return Array.isArray(pipeArgs) ? pipe.transform(value, ...pipeArgs) : pipe.transform(value, pipeArgs);
}
}
}
在我的共享模块中,声明了管道并将其与使用该管道的组件一起导出 shared.module.ts
import { CommonModule } from '@angular/common';
///
import { DynamicPipe } from './pipes/dynamic.pipe';
import { SharedTableComponent } from './components/shared-table/shared-table.component';
///
declarations: [
///
DynamicPipe,
SharedTableComponent,
///
],
exports: [
///
DynamicPipe,
SharedTableComponent,
///
],
providers: [
///
DynamicPipe,
///
]
///
我的共享模块已导入到App模块
共享模块导入到我使用共享表组件的位置 动态管道的用法如下
column = {
data: 1.2345678,
colPipe: 'number',
colPipeArgs: '1.1-1',
};
{{ column.data | dynamicPipe: column.colPipe:column.colPipeArgs }}
我遇到了错误:
ERROR NullInjectorError: R3InjectorError(JobModule)[number -> number -> number -> number -> number -> number]:
NullInjectorError: No provider for number!
Angular 14
transform dynamic.pipe.ts:21
我想念什么?