Microsoft cung cấp một mẫu tuyệt vời để phát triển Angular (không AngularJS) trong ASP.NET Core như được nêu trong bài viết của họ "Building Single Page Applications on ASP.NET Core with JavaScriptServices".ASP.NET Core Angular Template: app.module.client so với app.module.server
Trong khi nó rất đơn giản, có một phần của mẫu khiến tôi mất cảnh giác: thay vì chỉ đơn giản là tệp app.module.ts
, cả hai có một số app.module.client.ts
và app.module.server.ts
.
Tôi không tìm thấy bất kỳ điều gì giải thích điều này trên web. Có ai có bất kỳ ý tưởng tại sao có hai tập tin riêng biệt cho các module ứng dụng, những gì sử dụng cụ thể của họ là, làm thế nào để sử dụng chúng, vv?
Nếu nó giúp ở tất cả, đây là những gì toàn bộ template trông giống như:
Tôi nên lưu ý rằng ClientApp/app/models
và ClientApp/app/services
là hai thư mục tôi đã thêm cho mục đích riêng của tôi; chúng không phải là một phần của mẫu. Ngoài ra, app.module.shared.ts
thực sự rất thẳng về phía trước và chỉ ngăn việc phải viết một số mã hai lần, vì vậy đừng lo lắng về điều đó.
Đây là những gì hai tập tin như sau:
Ah, được rồi. Điều gì về cách sử dụng? Ví dụ: khi bạn khai báo một thành phần, nó có nên đi trong máy khách, máy chủ hoặc được chia sẻ không? Điều gì về các nhà cung cấp? Nhập khẩu? Một nguyên tắc hay là chỉ cần đặt mọi thứ vào chia sẻ? Có trường hợp nào trong đó cụ thể nên đặt một cái gì đó trong một tập tin và không phải trong một tập tin khác? – NetherGranite
Tôi đã tìm thấy rằng nếu tôi cố gắng thêm tham chiếu đến một dịch vụ được sử dụng bởi các thành phần phải thêm các tham chiếu đó vào các nhà cung cấp ở cả app.module.server và app.module.client. Tôi đã cố gắng theo dõi https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch/WEB-103 (xem nhận xét của tôi ở dưới cùng) và phải thêm tài liệu tham khảo vào các dịch vụ mẫu trong các tập tin nói trên. – danfer
Điều tôi đã kết thúc là đặt app.module.shared.ts nhập dịch vụ và thêm chúng vào nhà cung cấp được chia sẻ, hơn, tại app.module.server và app.module.client chỉ cần thêm tham chiếu đến sharedConfig.providers tại phần nhà cung cấp của @NgModule của từng tệp máy chủ và máy khách. Bằng cách này, nếu cần thêm dịch vụ mới thì không cần phải làm gì ở từng tệp, chỉ cần chia sẻ. Thử nghiệm với 2 dịch vụ khác nhau và hoạt động tốt – danfer