[解決済み] Angular2:カスタムパイプが見つからない
質問
内蔵のパイプは動作するのですが、使いたいカスタムパイプがすべて同じエラーになります。
パイプ 'actStatusPipe' が見つかりませんでした。
[ERROR ->]{{data.actStatus | actStatusPipe}}が見つかりませんでした。
app.moduleのdeclarationsで宣言する、2つの方法を試しました。
app.module.tsで宣言します。
import {ActStatusPipe} from '../pipe/actPipe'
@NgModule({
declarations: [
AppComponent,
HomePage,
ActivitiesList,
ActStatusPipe
],
...
})
または、他のモジュールを使って、すべてのパイプを宣言し、エクスポートします。 //パイプ
import {ActStatusPipe} from "./actPipe"
@NgModule({
declarations:[ActStatusPipe],
imports:[CommonModule],
exports:[ActStatusPipe]
})
export class MainPipe{}
を作成し、app.moduleでインポートします。
//pipe
import {MainPipe} from '../pipe/pipe.module'
@NgModule({
declarations:[...],
imports:[...,MainPipe],
})
しかし、私のアプリではどれも動作しません。
以下は私のパイプのコードです。
import {Pipe,PipeTransform} from "@angular/core";
@Pipe({
name:'actStatusPipe'
})
export class ActStatusPipe implements PipeTransform{
transform(status:any):any{
switch (status) {
case 1:
return "UN_PUBLISH";
case 2:
return "PUBLISH";
default:
return status
}
}
}
ドキュメントとほぼ同じだと思います(実際、ドキュメントをコピーして少し修正しただけです)。
また、私のangular2のバージョンは2.1です。
stackOverflowやgoogleで検索できる多くの解決策を私のアプリで試しましたが、うまくいきません。
これは私を非常に混乱させました、あなたの答えに感謝します!
どのように解決するには?
これは私のために動作している参照してください。
ActStatus.pipe.ts まず、これは私のパイプです
import {Pipe,PipeTransform} from "@angular/core";
@Pipe({
name:'actStatusPipe'
})
export class ActStatusPipe implements PipeTransform{
transform(status:any):any{
switch (status) {
case 1:
return "UN_PUBLISH";
case 2:
return "PUBLISH";
default:
return status
}
}
}
メインパイプ.モジュール.ts pipeモジュールでは、パイプを宣言し、それをエクスポートする必要があります。
import { NgModule } from '@angular/core';
import {CommonModule} from "@angular/common";
import {ActStatusPipe} from "./ActStatusPipe.pipe"; // <---
@NgModule({
declarations:[ActStatusPipe], // <---
imports:[CommonModule],
exports:[ActStatusPipe] // <---
})
export class MainPipe{}
app.module.ts は、このパイプモジュールを任意のモジュールで使用します。
@NgModule({
declarations: [...],
imports: [..., MainPipe], // <---
providers: [...],
bootstrap: [AppComponent]
})
このモジュールで直接パイプを使うこともできますが、もしパイプが複数のコンポーネントで使われるようであれば、私のアプローチに従うことをお勧めします。
- パイプの作成.
- 別のモジュールを作成し、1つまたは複数のパイプを宣言してエクスポートします。
- そのパイプのモジュールを使用する。
パイプをどのように使うかは、プロジェクトの複雑さと要件に完全に依存します。プロジェクト全体で一度だけ使うパイプがあるかもしれません。
関連
-
[解決済み] Angular 2 Karma Test 'component-name' は既知の要素ではありません。
-
[解決済み] Angular 2: 反応するフォームコントロールの反復処理
-
[解決済み] パイプ ' ' が見つかりません。
-
[解決済み] 継承と依存性注入
-
[解決済み] .tsファイルはTypeScriptのコンパイルの一部ですが、使用されていませんという警告を消すには?
-
[解決済み] AngularでEventEmitterに2つのパラメータを渡すには?
-
[解決済み] 文字列|ヌル'型の引数は、文字列'型のパラメータに代入できません。タイプ 'null' はタイプ 'string' に割り当てられません。
-
[解決済み] AngularでFormArrayからすべての項目を削除する
-
[解決済み] AngularでFormGroupに動的にaddControlを追加する
-
[解決済み] Typescriptで文字列をbooleanに変換する方法 Angular 4
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] angular-cliのビルドでカスタムファイルをインクルードするには?
-
[解決済み] 新しいangularプロジェクトを作成する際に依存関係ツリーエラーを解決できない
-
[解決済み] Error: モジュールによってインポートされた予期しない値 'undefined'。
-
[解決済み] FormGroupとFormArrayの使い分けは?
-
[解決済み] Angular 2で送信後にフォームをクリアするには?
-
[解決済み] Angular cli - ng serve時の自動リロードを無効にする方法
-
[解決済み] Angular2 Tutorial (Tour of Heroes)です。モジュール 'angular2-in-memory-web-api' を見つけることができません。
-
[解決済み] Angular2 *ngIf テンプレート内のオブジェクト配列の長さをチェックする
-
[解決済み] Angular2のTypescriptで文字列を日付に変換するには?重複
-
[解決済み] Angular2 ルーターがクエリ文字列を保持する