5

我的 Angular 架构由 3 个模块组成。

  • AppModule(应用程序演示和逻辑所在的位置)
  • CoreModule(包含我访问 API 的服务)
  • SharedModule(包含我的模型、管道、指令等......)

我想在我的 中添加一个新管道SharedModule,所以我创建它,然后将它添加到的装饰器的declarationsandexports字段中。SharedModuleNgModule

然后,在我的 中AppModule,我导入了SharedModule并且应该可以访问我的管道。但是,事情就是这样,我不能。相反,我有以下错误:

未捕获的错误:模板解析错误:找不到管道“排名位置”

有代码:

排名位置.pipe.ts

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({ name: 'rankingposition' })
export class RankingPositionPipe implements PipeTransform {
    transform(value: any, ...args: any[]) {
        // Do stuff    
    }
}

shared.module.ts

import { NgModule } from "@angular/core";
import { RankingPositionPipe } from "@app/shared/pipes/ranking-position.pipe";

@NgModule({
    declarations: [RankingPositionPipe],
    exports: [RankingPositionPipe]
})
export class SharedModule {}

app.module.ts

import { NgModule } from '@angular/core';
...
import { SharedModule } from '@app/shared/shared.module';

@NgModule({
  declarations: [...],
  imports: [
    ...,
    SharedModule
  ],
  providers: [],
  bootstrap: [...]
})
export class AppModule { }

编辑:添加我的组件代码:

排名.component.ts

import { Component } from "@angular/core";
import { CharacterModel } from "@app/shared/models/character.model";

@Component({
    selector: 'ranking',
    templateUrl: './ranking.component.html'
})
export class RankingComponent {
    public characters: Array<CharacterModel>;

    constructor() {
        this.characters = new Array<CharacterModel>();
    }
}

排名.component.html

<div class="card">
  <div class="card-header">
    Ranking
  </div>
  <div class="card-body">
    <ul>
      <li *ngFor="let character of characters; let i = index">
        {{ character.level | rankingposition }}
      </li>
    </ul>
  </div>
</div>

我错过了什么?

4

0 回答 0