ข้อควรระวังหากใช้โทเค็น
ในการพยายามทำให้แอปพลิเคชันของฉันเป็นแบบแยกส่วนมากที่สุดฉันมักจะใช้โทเค็นของผู้ให้บริการเพื่อให้บริการกับส่วนประกอบ ดูเหมือนว่าสิ่งเหล่านี้ไม่ได้รับngOnDestroy
วิธีการที่เรียกว่า :-(
เช่น.
export const PAYMENTPANEL_SERVICE = new InjectionToken<PaymentPanelService>('PAYMENTPANEL_SERVICE');
ด้วยส่วนผู้ให้บริการในส่วนประกอบ:
{
provide: PAYMENTPANEL_SERVICE,
useExisting: ShopPaymentPanelService
}
My ShopPaymentPanelService
ไม่มีngOnDestroy
วิธีการที่เรียกว่าเมื่อส่วนประกอบถูกกำจัด ฉันเพิ่งค้นพบวิธีนี้ยาก!
useExisting
การแก้ปัญหาคือการให้บริการร่วมกับ
[
ShopPaymentPanelService,
{
provide: PAYMENTPANEL_SERVICE,
useExisting: ShopPaymentPanelService
}
]
เมื่อฉันทำสิ่งนี้ngOnDispose
ก็เรียกได้ว่าเป็นไปตามคาด
ไม่แน่ใจว่าเป็นบั๊กหรือไม่ แต่คาดไม่ถึง
class Service implements OnDestroy
? และคุณคิดอย่างไรเมื่อสิ่งนี้ถูกเรียกว่าถ้าให้บริการในระดับโมดูล