我的 Angular 架构由 3 个模块组成。
AppModule
(应用程序演示和逻辑所在的位置)CoreModule
(包含我访问 API 的服务)SharedModule
(包含我的模型、管道、指令等......)
我想在我的 中添加一个新管道SharedModule
,所以我创建它,然后将它添加到的装饰器的declarations
andexports
字段中。SharedModule
NgModule
然后,在我的 中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>
我错过了什么?