2017-10-05 13 views
1

サービスの公開と非公開の違いは何ですか?ほとんどの例では、角度コンポーネントでprivateキーワードを使用しています。それは公共の使用に何らかの影響を及ぼしますか?例: Typescript依存関係注入public対private

constructor(public carService: CarService) { } 

constructor(private carService: CarService) { } 

答えて

4

以前の回答に加えて、プライベートとマークされたものは、コンポーネントのテンプレートからアクセスすることもできません。 (例えば、生産用として、AOTを使用した場合のプライベートメンバーはような開発時のように、JITを使用するときにアクセスではなく、することができます。)

注入されたサービスだったのであれば、あなたのテンプレートで、あなただけの*ngIf='carService.isValid' を行うことができますpublicとしてマークされています。

しかし、実際には、コンポーネントプロパティ/メソッド内のサービスプロパティ/メソッドをいずれにしてもラップし、テンプレートにコンポーネントのプロパティまたはメソッドをバインド/コールさせることをお勧めします。

このような何か:

get isValid(): boolean { 
     return this.carService.isValid; 
    } 

そして、このようにアクセス:*ngIf='isValid'

1

答えは非常に単純です:あなたは現在のクラス/コンポーネントの外側でそれらを使用する必要がない場合プライベート変数を作成する必要があり、そうでなければ、あなたが公共の作成する必要があります変数。

関連する問題