2017-08-05 6 views
6

.htmlの識別子は、コンポーネントのプライベートメンバーを指す

<offline-picks *ngFor="let pick of pickData" [data]="pick"></offline-picks> 

.TSがerror.I'm下に示して上記のように、私はprivate memberを使用

export class OfflineArticlesPage { 
    private pickData: picksModel[] = []; 
    constructor(private localCacheService: LocalCacheServiceProvider) { 
    } 
} 

Angular Language Service拡張子をVS codeエディタで使用しています。

【角度】識別子「pickData」はコンポーネント内private membersを用い 成分

希望のプライベートメンバーを意味良いプログラミングプラクティスないのですか?しかし、上記の問題の解決策はbelow comment on the extension's repoとなっています。

言語サービスでは、AOTの間に のエラーが発生するため、これらのエラーが発生します。最終的には、これらを解決する必要があります。

私たちは AOTで私的および保護されたメンバーへのアクセスをサポートする予定ですが、少なくとも6.0(翌年の春)までは着陸しません。

メンバーにコンポーネントを宣言するための最良の方法を教えてください。

更新:それは私のAndroidのdevice.Thatにうまく動作.But

私は、最新のイオン"ionic-angular": "3.5.3",ionic cordova run android --prod --device CLIコマンドを使用し、それはあまりにもAOTなしで正常に動作していることを意味?次に、なぜこのエラー(または実際には警告)ですか?

+0

警告があります。ビュー(したがってそのコンポーネントの外側)でプロパティを使用する場合は、そのプロパティをpublicとして宣言する必要があります。だからビューで 'private'プロパティを使うのは良いことではありません。 – sebaferreras

+1

実際、これは 'AoT'の問題です。あなたは、以下の答えのリンクでこれについての素晴らしい議論を見ることができます。それは巨大な議論と素晴らしいものでした@sebaferreras – Sampath

答えて

4

AoTが機能するためには、これらはpublicである必要があります。

は、もう少し詳細についてはこちらをご覧ください:private`プロパティは彼らだけが定義されているコンポーネント内で使用されている `ので https://github.com/angular/angular/issues/11978

+1

私の投稿にも' Update: 'を見てください。それについての考え? – Sampath

+0

私はIonicが何をしているのか分かりません(AoTやJiTを行っている場合は動作しますが、動作するとAoTでは動作しないはずなのでJiTを意味します) – Amit

+0

上記のリンクを使用してこの問題について多くを学びました。多く:) – Sampath