ใน 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/