いくつかのjavascriptロジックをAngular 2アプリに移動しています。その一部には "formatter"関数の自作ライブラリが含まれています(単にフォーマットする以外にもパイプはオプションではありません)。現在、これらはname(文字列)で渡され、受信関数はwindow [fName]関数リファレンス。角度2関数名を関数参照に変換する
だから、フォーマッタ機能があります:
var tickPositionerYMD = function() { ticks=[]; ... complex logic ... return ticks; }
、ビルド機能:
build(x, y, formatterName) {
...
formatter = window[formatterName];
...
}
そしてビルドは特定のフォーマッタと呼ばれている:JavaScriptで
build(xData, yData, 'tickPositionerYMD');
、窓[]は、関数参照を作成するために使用されます。
Question ... Angular 2コンポーネントでこれを行うにはどうすればよいですか?ウィンドウへの参照を使ってサービスが作成されるアプローチを見たことがあります。これはDIを通して渡されます。
2番目の方法は、名前を指定して関数を返すファクトリ関数を作成することです。
これらの選択肢を考えれば、ファクトリ関数を使う傾向があります。 Angularに新しいことは、私がより良いアプローチを見逃しているかどうか疑問に思っていました。