サービスの公開と非公開の違いは何ですか?ほとんどの例では、角度コンポーネントでprivateキーワードを使用しています。それは公共の使用に何らかの影響を及ぼしますか?例: Typescript依存関係注入public対private
constructor(public carService: CarService) { }
対
constructor(private carService: CarService) { }
サービスの公開と非公開の違いは何ですか?ほとんどの例では、角度コンポーネントでprivateキーワードを使用しています。それは公共の使用に何らかの影響を及ぼしますか?例: Typescript依存関係注入public対private
constructor(public carService: CarService) { }
対
constructor(private carService: CarService) { }
以前の回答に加えて、プライベートとマークされたものは、コンポーネントのテンプレートからアクセスすることもできません。 (例えば、生産用として、AOTを使用した場合のプライベートメンバーははような開発時のように、JITを使用するときにアクセスではなく、することができます。)
注入されたサービスだったのであれば、あなたのテンプレートで、あなただけの*ngIf='carService.isValid'
を行うことができますpublic
としてマークされています。
しかし、実際には、コンポーネントプロパティ/メソッド内のサービスプロパティ/メソッドをいずれにしてもラップし、テンプレートにコンポーネントのプロパティまたはメソッドをバインド/コールさせることをお勧めします。
このような何か:
get isValid(): boolean {
return this.carService.isValid;
}
そして、このようにアクセス:*ngIf='isValid'
答えは非常に単純です:あなたは現在のクラス/コンポーネントの外側でそれらを使用する必要がない場合プライベート変数を作成する必要があり、そうでなければ、あなたが公共の作成する必要があります変数。