定数ファイル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つですが、テンプレートの定数が最初に必要な理由についてもっと理解する必要があります。通常、これらはコンポーネント自体またはサービスによって使用されますが、テンプレートでは使用されません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加