2017-12-17 4 views
1

私はangular.io/tutorialを終了しようとしていましたが、その後私は特定のアドバイスであるhereに焦点を当てました。アンギュラ氏は述べています、と私はそれが角度サービスの可視性は本当に重要ですか?

唯一の公共コンポーネントのプロパティ

これは本当に本当に結合することができ、引用てる? チュートリアルそのもの以外にも何かを学ぼうとすると、HTMLがエクスポートされたクラスのサービスにプライベート、プロテクト、パブリックのいずれにもアクセスできるかどうか、私自身がテストしました。すべてが働いた。

私の質問は3つです。私はAngularチュートリアルのドキュメントから引用した文は本当ですか?それはちょうどプログラミングの方法であり、「良い習慣」ですか? Angularライフサイクルで、サービスの可視性がプライベートではないと誰かが考えていることが起こっていますか?

OOPガイドラインに従うと、オブジェクトのリソースを自分のプライベートプロパティに表示するのは正常な動作ですね。

答えて

2

開発モードまたは生産モードの異なるモードで実行されます。あなたがAOTを使ってプロダクション用にプロジェクトをコンパイルするとき(テンプレートがJavaScriptにコンパイルされる) Angularコンパイラは、プライベートまたはアクセスエラーで保護します。

開発用のデフォルトモードであるランタイムコンパイラは、ブラウザ内のテンプレートのみをコンパイルします。 TypeScriptがJavaScriptに変換され、アクセス修飾子が失われた後。

開発モードで何が起こったかをテストしただけです。

+0

ありがとうございます!私はそう答えるかもしれません、どうすればAOTをコンパイルできますか?私はすでに "tsc"でこれをしていたが、おそらく間違いで答えを読んでいた。か否か? – enriquo

+0

CLIのオプションです:https://github.com/angular/angular-cli/wiki/build#build-targets-and-environment-files – cgTag

+0

Ng build -prod -aot –

関連する問題