"date"パイプをオーバーライドして、組み込みパイプのようにどこでもグローバルアクセスの利点を享受したいと思います.-すべてのコンポーネントアノテーションでpipes []配列をインポートして使用する必要はありません。これは可能ですか?組み込みのAngular 2パイプをオーバーライドして、グローバルに使用することは可能ですか?
8
A
答えて
14
はい、PLATFORM_PIPES
を使用して、パイプdate
をハイジャックするカスタムパイプと名前を追加できます。
@Pipe({
name : 'date' // Hijacks the 'date' pipe
})
class CustomDatePipe {
transform(val, args) {
return /* do something new with the value */;
}
}
@Component({
selector: 'my-app',
template : '{{mydate | date}}',
})
export class App {
mydate = Date.now();
}
// Provides the CustomDatePipe globally
bootstrap(App, [provide(PLATFORM_PIPES, {useValue: [CustomDatePipe], multi: true})]);
このようにして、コンポーネントのpipes
プロパティに毎回指定する必要はありません。
ここには、例として働いているplnkrがあります。
2
はい、次の方法で使用PLATFORM_PIPES
https://angular.io/docs/ts/latest/api/core/index/PLATFORM_PIPES-let.html
import {PLATFORM_PIPES} from '@angular/core';
import {OtherPipe} from './myPipe';
@Component({
selector: 'my-component',
template: `
{{123 | other-pipe}}
`
})
export class MyComponent {
...
}
bootstrap(MyComponent, [{provide: PLATFORM_PIPES, useValue: [OtherPipe], multi:true}]);
1
エリック・マルティネス」答えは正常に動作します! PLATFORM_PIPESはAngular4で廃止予定です。 Angular4のプラットフォームパイプは、app.modulesを介して設定されます。
/**
* `AppModule`
*/
@NgModule({
...
providers: [
...
CustomDatePipe
]
})
+0
テスト用に(Vilmantas Baranauskasの質問に答えるために):パイプ自体のテストと明示的に呼び出されるテストトランスフォームにテストを書くことができます。新しいCustomDatePipe()。transform(入力) –
関連する問題
- 1. FlaskにPyramidを組み込むことは可能ですか?
- 2. スーパーエージェントを使用した読み込み可能なストリームのパイプ
- 3. Component.createComponent()を使用して組み込みのQMLコンポーネントを動的に読み込むことが可能
- 4. Angular JS 2 npmとng(Angular-Cli)の違い(組み込みツール)
- 5. Angular組み込みファイルを編集することはできますか?
- 6. Webpack Encore:/ vendorからjsを組み込み、グローバルに使用するには?
- 7. 角2 - 組み込みパイプとそのパラメータのリスト?
- 8. Androidマニフェストにコードを組み込む/インポートすることは可能ですか?
- 9. テストに組み込みルビを使用することはできますか?
- 10. パイプとドットプレースホルダをRに組み込む
- 11. Angularを既存の.NET MVVMプロジェクトに組み込むことは可能ですか?
- 12. 私のプログラムにJetBrans MPSエディタを組み込むことは可能ですか?
- 13. OCamlを組み込みモードで使用することはできますか?
- 14. コントローラをPlay Frameworkに組み込むことは可能ですか?
- 15. SSRS ReportViewerをVB6プログラムに組み込むことは可能ですか?
- 16. ブラウザ内にコンパイラを組み込むことは可能ですか?
- 17. 組み込みのJavaScriptクラスをAngular 2に挿入
- 18. 別のモジュールに組み込みアセンブリを組み込むこと
- 19. Windows組み込みコンパクト7 - バッチファイルを使用しています - エラーレベルは不可能ですか?
- 20. Hibernate組み込み可能な継承
- 21. C++組み込み可能なオブジェクト
- 22. web.pyのテンプレートに組み込み「STR」関数を使用する:グローバル名
- 23. Roslynを使用して、到達不能なコードやその他の組み込みのコンパイル警告を検出することは可能ですか?
- 24. Ruby組み込みRSSモジュールを使用して原子フィードを読み取ることはできますか?
- 25. カスタム型とスカラ組み込み数の混在算術は可能ですか?
- 26. 組み込みシステムでUSB OTGをシリアルポートとして使用するには?
- 27. Raven Management Studioで組み込みDBに接続することは可能ですか
- 28. ECharts BaiduをAngular 2とTypeScriptで使用することは可能ですか
- 29. 組み込みマルチセレクション機能をjqGrid TreeGridsで使用することはできますか?
- 30. 組み込み配列には何を使用しますか?
パイプはユニットテストでもグローバルに使用できるようにするために何が必要なのか分かりますか? –