Angular - 找不到带有名称的管道

use*_*113 4 web-frontend angular-pipe angular angular8 angular9

我使用“ng g pipe”命令创建了一个管道。在我的代码中使用它时出现控制台错误。下面附上代码的截图。错误:错误 NG8004:未找到名称为 'filterByPrcName' 的管道filter-by-prc-name.pipe.ts控制台错误信息 product-list.component.html

liv*_*ove 37

您需要打开声明组件的角度模块,然后将其添加到声明中,并添加所需的导入。

例子:

 <td>{{product.productCode | lowercase | convertToSpaces: '-' }}</td>
Run Code Online (Sandbox Code Playgroud)

src/app/products/product-list.component.html:48:61 中出现错误 - 错误 NG8004:找不到名称为“convertToSpaces”的管道。

应用程序模块.ts:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { FormsModule } from '@angular/forms';

import { AppComponent } from './app.component';
import { ProductListComponent } from './products/product-list.component';
import { ConvertToSpacesPipe } from './shared/convert-to-spaces.pipe'; // <-- Add this

@NgModule({
  declarations: [
    AppComponent,
    ProductListComponent,
    ConvertToSpacesPipe  // <-- Add this
  ],
  imports: [
    BrowserModule,
    FormsModule
  ],
  bootstrap: [AppComponent],

  //exports: [AppComponent],

})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

转换为空间.pipe.ts

import { Pipe, PipeTransform } from '@angular/core'

@Pipe({ name: 'convertToSpaces' })

export class ConvertToSpacesPipe implements PipeTransform {

    transform(value: string, character: string): string {
        return value.replace(character, ' ');
    }

}
Run Code Online (Sandbox Code Playgroud)


Awa*_*sir 12

当我在延迟加载模块中使用货币管道时,我遇到了这个错误,为此,您必须在当前模块和 app.module.ts 中导入CommonModule

对于非延迟加载的模块,无需导入CommonModule


Fun*_*y33 10

如果您的组件不在其父模块的声明数组中,您也会收到此错误。

  • 恕我直言,答案被严重低估了。这通常很难捕捉到。 (9认同)
  • 这是每个人都需要的真理!!!转到您的模块并在声明部分添加这个特定的类 (3认同)