Tìm kiếm trang web

typescript - Angular khởi động nhiều module với vùng chia sẻ


tất cả,

Chúng tôi đang làm việc trên một ứng dụng web một trang, hiện tại chúng tôi đang tạo một số module mới với Angular2+. Để đưa tất cả các module mới này vào ứng dụng cũ của chúng tôi, chúng tôi đã tạo một bộ nạp để tải các module NG. Bộ nạp đang gọi platform.bootstrapModule cho mỗi module để tải một số module được tạo động.

Chúng tôi hiện đang triển khai một giải pháp giao tiếp để chia sẻ trạng thái giữa các module bằng cách sử dụng @ngrx/store, chỉ cần chèn StoreModule vào các nhà cung cấp nền tảng, chúng tôi có thể dễ dàng có một store chung cho tất cả các module, nhưng chúng tôi gặp một số vấn đề về phát hiện thay đổi vì với platform.bootstrapModule tất cả các module đều có NgZone riêng của mình.

Chúng tôi đã tìm được một giải pháp tạm bằng cách gọi platform._bootstrapModuleWithZone với một instance NgZone chung. Nhưng giải pháp tạm này đang sử dụng một phương thức riêng tư và chúng tôi muốn tránh điều đó. Có ai có giải pháp tốt hơn không?

Bạn có thể tìm thấy ví dụ về vấn đề phát hiện thay đổi platform.bootstrapModule(AppModule1); platform.bootstrapModule(AppModule2);

http://plnkr.co/edit/E7tSAU67KnPDMV6dRWUB?p=preview

Bạn có thể tìm thấy cách giải quyết platform._bootstrapModuleWithZone(AppModule1, [], zone); platform._bootstrapModuleWithZone(AppModule2, [], zone);

http://plnkr.co/edit/pHeBYwXTe5fdXZJSfu1F?p=preview, chúng tôi đã tìm thấy giải pháp tạm thời trên các vấn đề của Angular trên github: https://github.com/angular/angular/issues/10681

P.S. chúng ta thực sự không thể tự khởi tạo một BaseModule và tạo động tất cả các component bên trong BaseModule vì chúng ta cần tiêm một số Services khác nhau cho các module.