Questo non risponde direttamente alla domanda, ma in diverse occasioni sono arrivato a questa domanda di Stack Overflow per risolvere qualcosa che avrei usato $ watch per in angularJs. Ho finito per utilizzare un approccio diverso da quello descritto nelle risposte attuali e voglio condividerlo nel caso qualcuno lo trovi utile.
La tecnica che utilizzo per ottenere qualcosa di simile $watch
è usare un BehaviorSubject
( più sull'argomento qui ) in un servizio Angular e lasciare che i miei componenti si iscrivano per ottenere (guardare) le modifiche. Questo è simile a un $watch
in angularJs, ma richiede un po 'più di configurazione e comprensione.
Nel mio componente:
export class HelloComponent {
name: string;
constructor(private helloService: HelloService){
this.helloService.getGreeting().subscribe( greeting => {
this.name = greeting.value;
});
}
}
Al mio servizio
export class HelloService >();
constructor()
getGreeting(): Observable<>
setGreeting(greeting: string) );
}
}
Ecco una demo su Stackblitz