6
ฉันจะแบ่งปันข้อมูลระหว่างส่วนประกอบใน Angular 2 ได้อย่างไร
ใน Angular 1.xx คุณเพียงแค่ขอบริการเดียวกันและลงเอยด้วยอินสแตนซ์เดียวกันทำให้สามารถแบ่งปันข้อมูลในบริการได้ ตอนนี้ใน Angular 2 ฉันมีส่วนประกอบที่อ้างอิงถึงบริการของฉัน ฉันสามารถอ่านและแก้ไขข้อมูลในบริการซึ่งเป็นสิ่งที่ดี เมื่อฉันพยายามฉีดบริการเดียวกันในส่วนประกอบอื่นดูเหมือนว่าฉันได้รับอินสแตนซ์ใหม่ ผมทำอะไรผิดหรือเปล่า? มันเป็นรูปแบบที่ผิด (ใช้บริการเพื่อแบ่งปันข้อมูล) หรือฉันต้องทำเครื่องหมายบริการเป็นซิงเกิลตัน (ภายในแอปเดียว) หรืออะไร? ฉันอยู่ใน2.0.0-alpha.27/ btw ฉันฉีดบริการผ่านappInjector(แก้ไข: ตอนนี้providers) ใน@Componentคำอธิบายประกอบจากนั้นบันทึกการอ้างอิงในตัวสร้าง มันทำงานในคอมโพเนนต์ - ไม่ใช่ในคอมโพเนนต์ (ไม่แชร์อินสแตนซ์บริการเดียวกัน) อย่างที่คิด UPDATE : ณ เชิงมุม 2.0.0 ตอนนี้เรามี @ngModule ที่คุณจะกำหนดให้บริการภายใต้ทรัพย์สินในกล่าวว่าproviders @ngModuleซึ่งจะช่วยให้มั่นใจได้ว่าอินสแตนซ์เดียวกันของบริการนั้นจะถูกส่งต่อไปยังส่วนประกอบบริการ ฯลฯ ในโมดูลนั้น https://angular.io/docs/ts/latest/guide/ngmodule.html#providers UPDATE : เกิดขึ้นมากมายกับการพัฒนา Angular และ FE โดยทั่วไป ดังที่ @noririco กล่าวไว้คุณสามารถใช้ระบบการจัดการของรัฐเช่น NgRx: https://ngrx.io/