[解決済み] Angular 2のコンポーネントとサービスで定数にアクセスするには?
2023-07-04 12:30:18
質問
定数ファイル constants.ts :
export const C0NST = "constant";
サービスでアクセスする some.service.ts のようにします。
import { C0NST } from './constants';
console.log(C0NST); // "constant"
しかし、コンポーネントテンプレートでアクセスすると
some.component.ts :
import { C0NST } from './constants';
some.component.html :
{{ C0NST }} <!-- Outputs nothing -->
コンポーネントクラスでメンバを定義しても動作します。
some.component.ts
public const constant = C0NST;
some.component.html
{{ constant }} <!-- constant -->
コンポーネントクラスでインポートした定数なのに、サービスクラスでは直接アクセスできたのに、コンポーネントテンプレートではアクセスできないのはなぜでしょうか?
どのように解決するのですか?
Angular2では、テンプレートはコンポーネントクラスのフィールドとメソッドにのみアクセスすることができます。他のすべては制限されています。これには、コンポーネントクラスから見えるものも含まれます。
これを回避する方法は、コンポーネント内に定数を参照するだけのフィールドを用意し、それを代わりに使用することです。
それは設計の1つの限界ですが、そもそもなぜテンプレートに定数が必要なのか、もう少し考えるべきかもしれません。通常、このようなものはコンポーネント自体やサービスによって使用されますが、テンプレートでは使用されません。
関連
-
[解決済み】アンギュラーコンポーネントにサービスを注入しようとするとエラー "EXCEPTION: Can't resolve all parameters for component"、なぜ?
-
[解決済み] Angular 2+でngShowとngHideに相当するものは何ですか?
-
[解決済み] コンポーネントテンプレートで要素を選択するには?
-
[解決済み] オブジェクトのキーと値に*ngForでアクセスする
-
[解決済み] Angularの@Directiveと@Componentの比較
-
[解決済み] trackBy` と `ngFor` の使い方
-
[解決済み] ngForとAsync Pipe Angular 2でObservableオブジェクトから配列を利用する。
-
[解決済み] Angular 2で送信後にフォームをクリアするには?
-
[解決済み] 親コンポーネントのangular2呼び出し関数
-
[解決済み] タイプスクリプト React: コンポーネントのプロパティタイプにアクセスする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ng2 - ng-containerタグとng-templateタグの違い
-
[解決済み] Karma/Jasmineのテストで「[object ErrorEvent] thrown」エラーが発生した場合、どのようにデバッグすればよいですか?
-
[解決済み] angularで「タイプ 'EventEmitter' は一般的ではありません」ERROR。
-
[解決済み] どのようにしてangular 4のurlからparamを取得するのですか?
-
[解決済み] 64進数の文字列を角(2+)でエンコードおよびデコードする。
-
[解決済み] Uncaught Error: Unexpected module 'FormsModule' declared by the module 'AppModule'. Pipe/@Directive/@Component アノテーションを追加してください。
-
[解決済み] エラー TS1192: モジュール '" A.module"' はデフォルトのエクスポートがありません。
-
[解決済み] Angular - ngForの中のngIfの中のパラメータを持つng-template [重複]。
-
[解決済み] Angular2のTypescriptで文字列を日付に変換するには?重複
-
[解決済み] Angular2で複数のルートパラメータを渡す