Chỉnh sửa: Câu trả lời này bây giờ không chính xác. Không có hướng dẫn chính thức nào về chủ đề khi tôi đăng nó, nhưng như đã giải thích trong câu trả lời (xuất sắc và chính xác) của @ Yaroslov, đây không còn là trường hợp nữa: Codelizer hiện cảnh báo và trình biên dịch AoT sẽ thất bại trong các tham chiếu đến các biến riêng tư trong các mẫu thành phần . Điều đó nói rằng, ở mức độ khái niệm, mọi thứ ở đây vẫn còn hiệu lực, vì vậy tôi sẽ để lại câu trả lời này vì nó có vẻ hữu ích.
Vâng, điều này được mong đợi.
Hãy nhớ rằng private
và các công cụ sửa đổi truy cập khác là các cấu trúc Bản mô tả, trong khi Thành phần / bộ điều khiển / mẫu là các cấu trúc góc mà Bản mô tả không biết gì về. Bộ điều chỉnh truy cập kiểm soát mức độ hiển thị giữa các lớp: Tạo một trường private
ngăn các lớp khác có quyền truy cập vào nó, nhưng các mẫu và bộ điều khiển là những thứ tồn tại trong các lớp.
Điều đó không đúng về mặt kỹ thuật, nhưng (thay vì hiểu cách các lớp liên quan đến trang trí và siêu dữ liệu của họ), có thể hữu ích khi nghĩ về nó theo cách này, bởi vì điều quan trọng (IMHO) là chuyển từ suy nghĩ về khuôn mẫu và bộ điều khiển như tách biệt các thực thể nghĩ về chúng như là các phần thống nhất của cấu trúc Thành phần - đây là một trong những khía cạnh chính của mô hình tinh thần ng2.
Nghĩ về nó theo cách đó, rõ ràng chúng ta mong đợi private
các biến trên một lớp thành phần sẽ hiển thị trong khuôn mẫu của nó, với cùng lý do chúng ta mong đợi chúng sẽ hiển thị trong các private
phương thức trên lớp đó.