Tôi đang cố sử dụng thành phần tôi đã tạo bên trong AppModule trong các mô-đun khác. Tôi nhận được lỗi sau mặc dù:Góc 2 'thành phần' không phải là một phần tử đã biết
"Uncaught (in promise): Error: Template parse errors:
'contacts-box' is not a known element:
- If 'contacts-box' is an Angular component, then verify that it is part of this module.
- If 'contacts-box' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
cấu trúc dự án của tôi là khá đơn giản:
tôi giữ trang của tôi trong trang thư mục, trong đó mỗi trang sẽ được giữ trong mô-đun khác nhau (ví dụ như khách hàng có mô-đun) và mỗi mô-đun có nhiều thành phần (như danh sách khách hàng-thành phần, khách hàng, thành phần bổ sung, v.v.). Tôi muốn sử dụng ContactBoxComponent của tôi bên trong các thành phần đó (vì vậy bên trong khách hàng-thêm-thành phần chẳng hạn).
Như bạn có thể thấy, tôi đã tạo thành phần hộp danh bạ bên trong thư mục tiện ích nên về cơ bản nó nằm trong AppModule. Tôi đã thêm nhập ContactBoxComponent vào app.module.ts và đặt nó vào danh sách khai báo của AppModule. Nó đã không làm việc vì vậy tôi googled vấn đề của tôi và thêm ContactBoxComponent để xuất danh sách là tốt. Không giúp được gì. Tôi cũng đã thử đặt ContactBoxComponent trong CustomersAddComponent và sau đó trong một số khác (từ mô-đun khác nhau) nhưng tôi nhận được một lỗi nói rằng có nhiều khai báo.
Tôi đang thiếu gì?
bước của bạn không giúp tôi nhưng có lẽ đó là vì tôi khá mới để kiễu góc 2, vì vậy tôi sẽ trả lời chúng và có lẽ chúng ta sẽ tìm ra giải pháp cùng nhau. Tôi chắc chắn tên là chính xác, tôi tuyên bố các thành phần trong AppModule, tôi xuất khẩu các thành phần trong AppModule và khởi động lại cli. Tôi cũng đã cố gắng nhập khẩu AppModule trong khách hàng của tôiAddComponent nhưng nó dẫn đến Lỗi: Kích thước ngăn xếp cuộc gọi tối đa vượt quá (tôi đoán chúng tôi không nhập AppModule trong Góc 2). – Aranha
Bạn nên khai báo và xuất khẩu thành phần của bạn trong một mô-đun sepperate, Không phải trong AppModule. Tiếp theo, bạn nên nhập mô-đun mới này trong mọi mô-đun bạn muốn sử dụng thành phần của mình. –
OK, tôi hiểu ngay bây giờ. Câu hỏi duy nhất là: khi tôi nhập khẩu các mô-đun mới được tạo ra (nói WidgetsModule) nó sẽ tải aaaaaall các thành phần được khai báo bên trong, phải không? Đó là một số chi phí nhưng có lẽ tôi hiểu nhầm điều gì đó. Tôi có thể tất nhiên tạo ContactsBoxModule nhưng đó là rất nhiều cho một thành phần nhỏ. Bất kỳ gợi ý nào? – Aranha