javascript - Få en ändring i en Angular-tjänst att synas i alla komponenter som använder den tjänsten


Jag bygger en klon av en webbplats/app som heter Kualitee.com. Det är ett testhanteringsverktyg som används av QA-ingenjörer. I Kualitee har du flera projekt, med testfall och medlemmar. Du kan lägga till, ta bort och ändra projekt och medlemmar. Det finns en header högst upp som gör det möjligt att välja ett projekt vars data du vill ha, t.ex. testfall och så vidare.

rubriken för att byta projekt

Metoden jag använde för detta är som följer:

1. en tjänst som innehåller all data

2. en tjänst som endast innehåller det valda projektet...

Hela appen använder de data som finns i den andra tjänsten. När jag gör en ändring i ett projekt, till exempel lägger till en ny medlem, visas det vid det tillfället. Efter det, om jag ändrar projektet i urvalet högst upp till ett annat projekt, ändras inte komponenten som innehåller den medlemmen, även om projektet nu är ett annat, men så fort jag byter till en annan komponent, genom routing, och tillbaka igen, är ändringarna där.

Min poäng är, finns det något sätt jag kan lägga till funktionalitet där, om en föräldrakomponent ändrar ett objekt i tjänsten, speglas ändringen i en barnkomponent som också använder det samma objektet i samma tjänst, utan att jag behöver ändra komponenter eller uppdatera.

PS. Detta är första gången jag frågar något på StackOverflow, förlåt om min fråga är förvirrande.

Svar #1

Du behöver förmodligen en observerbar delad tjänst för att dela data mellan komponenter. Här är hur man uppnår det: Interaktion mellan komponenter med hjälp av en tjänst

Svar #2

Jag tror att du refererar till Angulars livscykel https://angular.io/guide/lifecycle-hooks

Relaterade artiklar