多くのコンポーネントで使用される文字列定数がいくつかあります。ハードコードや個々のコンポーネントの文字列として記述したくありません。 angular2アプリケーションでそれらを維持するにはどこが最適ですか?angular2多くの文字列値が格納されています
答えて
angleJs 1のようにconstantまたはconfigというようなものはありません。
私は飛行機のクラスを作り、そこにあなたのすべての弦を置くと言うでしょう。クラス名に直接アクセスできるように静的にすることができます。
export class StngsValue {
static finrstWord = 'this is test string';
static secoundWord = 'this is test string';
static thirdWord = 'this is test string';
}
それとも、JSONファイル内のすべての文字列を入れて、解決策の一つは、共有サービスで、あなたの文字列を置くことであろうこの
@Injectable()
export class ConfigService {
public config: any;
private configObs: Observable<any>;
constructor(private http: Http) {
}
public load(): Observable<any> {
if (this.config) {
return Observable.of(this.config);
} else {
this.configObs = this.http.get('/configuration.json').map((res) => {
this.config = this.config || res.json() || {};
return this.config;
});
}
return this.configObs;
}
}
ような角度サービスからそのjosnファイルを呼び出すことができます。そのプロパティを必要とするすべてのコンポーネントにサービスを注入します。あなたの文字列が定数でなく、文字列の値が更新されている場合(これはあなたのケースではないと思います)、これは特に良いことです。そして
export const CONFIG = Object({
MYSTRING: 'Hello',
...
)}
を(例えば)などの部品にそれを使用する:
import { CONFIG } from 'shared/config';
myString = CONFIG.MYSTRING;
他の方法はそうよう、 '普通' typescriptですクラス、* .TSファイルを宣言することであろう
これは、すべての定数を1か所にグループ化するのに適しています。
また、1つの定数のために行くことを選択することができます
export const MyString = "Hello";
、その後、あなたが以前のように、あなたのコンポーネントでそれをインポートすることができます。
共有サービスを使用して、すべてのコンポーネントがそのサービスからデータ/メソッド/ etcにアクセスできるようにすることができます。そうあなただけ
shared.service.ts
内部
としてあなたのファイルを宣言します。あなたのapp.module.tsで
import { Injectable } from '@angular/core';
@Injectable()
export class SharedService{
public str: string;
}
サービスをインポートし、@ngModuleで、プロバイダに追加します。その後、
providers: [ SharedService ]
いずれかのコンポーネントでサービスをインポートするだけで、コンポーネントコンストラクタで次のように追加します。
constructor(public service: SharedService){}
ここでは、あなたのコンポーネントにサービスを注入している、あなたは今、あなたがthis.service.string
を読むことができます
- 1. Vuexフロートベースのストア値が文字列として格納されています
- 2. ガベージ文字が配列に格納されています
- 3. JSONObject文字列がsharedpreferencesに格納されていません
- 4. ListPreference値が文字列として格納されていない
- 5. Android-データベースに文字列が格納されていない
- 6. 文字列に格納されたJson値をクラス値に割り当ててからSQLに格納する
- 7. strongloopのIDが文字列として格納されていません
- 8. PHP - HTMLの入力文字列がエスケープシーケンス文字列としてMySQLに格納されています
- 9. セッションに格納されているASP.NET、スレッド、接続文字列
- 10. データベース上の文字列が間違った文字列に格納されています
- 11. コレクションには文字列が格納されません
- 12. ComboBoxに文字列値を格納していないJavaFX
- 13. 構造体にスウィフト文字列が格納されていません
- 14. 値が配列に格納されていませんか?
- 15. C++の文字列はどのように格納されていますか?
- 16. 同じ値の2つの文字列がどのようにメモリに格納されていますか?
- 17. JOptionPaneが文字列を格納していません
- 18. Mongoは、文字列として格納されているすべての数値フィールドを変換します。
- 19. 文字列定数はどこに格納されていますか?
- 20. 別の文字列に格納されていない最初の文字列を確認する(C++)
- 21. ループ内の配列に文字列値を格納する
- 22. MIPS - メモリに格納されている文字列と入力文字列を比較します。
- 23. データベースフィールドに格納された文字列の特定の値を照会する
- 24. 文字列に格納された文字 - ランダム化されたときに別の文字列変数に格納する方法
- 25. C文字列に16進値を格納していますか?
- 26. は、必要な文字列がtxtファイルに格納されている文字列を形成抽出
- 27. has.keyメソッドがRのハッシュパッケージに正しく格納されていない文字列キー
- 28. 文字列/配列(Python)に複数の関数値を格納
- 29. pandasの列に文字列値の配列を格納しますか?
- 30. MATLABは配列として文字列を格納します