2015-09-21 17 views
6

Tôi có một ứng dụng có chứa ba thành phần. Ứng dụng, EditView, Dialog.Thành phần con 2 cạnh đề cập đến thành phần gốc

Các thành phần ứng dụng chứa các thành phần EditView có thể chứa nhiều thành phần EditView khác và một thành phần Dialog (nếu thành phần Dialog hiển thị trên một trang).

Thành phần hộp thoại chứa thành phần Ứng dụng. Khi tôi đặt rằng trong thành phần Dialog trong đường dẫn tuyên bố:

directives:[Application] 

I'am nhận được lỗi này:

giá trị chỉ thị không mong muốn 'undefined' trên nhìn ra thành phần 'Dialog'

Có thể ở tất cả để có cấu trúc như vậy, nơi thành phần con có thể chứa thành phần từ cấp trên liên quan đến một số điều kiện?

Nếu tôi thả thành phần Ứng dụng từ Hộp thoại hoặc thay thế nó bằng các thành phần khác, nó hoạt động tốt.

Zlaja

+0

Đây là cuộc thảo luận từ nhóm kiễu góc Google: https://groups.google.com/forum/#!topic/angular/tDU5sw1vBwc – zlaja

Trả lời

3

Đưa nó trong danh sách chỉ thị sẽ không làm việc, nhưng bạn vẫn có thể truy cập vào các thành phần cha mẹ bằng cách để nó tiêm trong constructor của chỉ thị con:

constructor(@Host(Application) application: Application) { 

} 

Và thành phần cha mẹ có thể nhận được một danh sách trực tiếp của các thành phần con sử dụng @Query:

constructor(@Query(EditView) editViews: QueryList<EditView>){ 

} 
+0

Justo để clerify. Tôi muốn có thể hiện ứng dụng mới trong thành phần Dialog. Ứng dụng -> EditView -> Dialog -> Application (đây là trường hợp mới). – zlaja

+0

Với forwardRef Tôi đã quản lý thành phần Dialog có thể xem thành phần Ứng dụng trong các chỉ thị, tôi đã kiểm tra nó trong chế độ gỡ lỗi. Bây giờ, tôi nhận được lỗi này: Chu kỳ thành phần vô điều kiện trong Ứng dụng. Xem https://groups.google.com/forum/#!topic/angular/tDU5sw1vBwc. – zlaja

Các vấn đề liên quan