Sunting: Jawaban ini sekarang salah. Tidak ada panduan resmi tentang topik ketika saya mempostingnya, tetapi seperti yang dijelaskan dalam jawaban @ Yaroslov (luar biasa, dan benar), ini tidak lagi menjadi masalah: Pembuat kode sekarang memperingatkan dan kompilasi AoT akan gagal pada referensi ke variabel pribadi dalam templat komponen . Yang mengatakan, pada level konseptual semuanya di sini tetap valid, jadi saya akan meninggalkan jawaban ini karena tampaknya telah membantu.
Ya, ini diharapkan.
Perlu diingat bahwa private
dan pengubah akses lainnya adalah konstruksi TypeScript, sedangkan Component / controller / template adalah konstruksi sudut yang tidak diketahui oleh apa pun tentang Typescript. Pengubah akses mengontrol visibilitas antar kelas: Membuat bidang private
tidak bisa dilakukan kelas lain dari memiliki akses ke sana, tetapi templat dan pengontrol adalah hal-hal yang ada di dalam kelas.
Secara teknis itu tidak benar, tetapi (sebagai pengganti memahami bagaimana kelas berhubungan dengan dekorator dan metadata mereka), mungkin akan membantu untuk memikirkannya dengan cara ini, karena yang penting (IMHO) adalah beralih dari berpikir tentang template dan pengontrol sebagai terpisah entitas ke dalam pemikiran mereka sebagai bagian terpadu dari konstruksi Komponen - ini adalah salah satu aspek utama dari model mental ng2.
Berpikir seperti itu, jelas kita mengharapkan private
variabel pada kelas komponen agar terlihat dalam templatnya, untuk alasan yang sama kita mengharapkan mereka terlihat dalam private
metode pada kelas itu.