編集:この回答は正しくありません。私が投稿したときのトピックに関する公式のガイダンスはありませんでしたが、@ Yaroslovの(優れた、正しい)回答で説明されているように、これは当てはまりません:Codelizerが警告し、コンポーネントテンプレートのプライベート変数への参照でAoTコンパイルが失敗します。とは言っても、概念的なレベルでは、ここにあるすべてのものは有効なままなので、この回答は役に立ったと思われるのでそのままにしておきます。
はい、そうです。
private
と他のアクセス修飾子はTypescript構成体ですが、Component / controller / templateはTypescriptが何も知らない角度構成体であることを覚えておいてください。アクセス修飾子は間の可視性を制御しますクラスます。フィールドprivate
を作成すると、他のクラスがそのフィールドにアクセスできなくなりますが、テンプレートとコントローラーはクラス内に存在するものです。
それは技術的には真実ではありませんが、(クラスがデコレータとそのメタデータにどのように関連するかを理解する代わりに)このように考えると役立つかもしれません。重要なこと(IMHO)はテンプレートとコントローラを別々のものとして考えることからシフトすることですエンティティをそれらをコンポーネント構成の統合された部分として考えるようにします。これは、ng2メンタルモデルの主要な側面の1つです。
そのように考えるprivate
と、コンポーネントクラスの変数がそのテンプレートに表示されることを期待しています。同じ理由で、private
そのクラスのメソッドに変数が表示されることを期待しています。