Kann ich ein Ereignis, das von einer Blattkomponente ausgegeben wird, nur in der Stammkomponente abfangen? Ich habe dazu keine Informationen gefunden.Angular 2 Event Emitter?
Antwort
In der Tat können Sie nur bei einem benutzerdefinierten Ereignis von einer untergeordneten Komponente in der übergeordneten Komponente benachrichtigt werden.
Um Ihren Anwendungsfall zu implementieren, müssen Sie einen freigegebenen Dienst implementieren, den Sie in derAttribut in Ihrer Stammkomponente angeben. Auf diese Weise wird es mit dieser Komponente und dem gesamten Graphen seiner Kinder geteilt.
Dieser Service enthält ein beobachtbares Thema. Wenn ein Blatt ein Ereignis auslösen möchte, wird es den Beobachter, der mit diesem Observablen oder dem Subjekt assoziiert ist, nutzen. Die Root-Komponente abonniert diese beobachtbare/zu benachrichtigende Subject
Hier ist eine Beispielimplementierung. Zunächst wird der Service:
export class EventService {
subject$: Subject<any> = new Subject();
}
Root-Komponente:
@Component({
(...)
providers: [ EventService ]
(...)
})
export class RootComponent {
constructor(private service:EventService) {
this.eventService.subject$.subscribe(event => {
// Execute when the event is received from leaf component
});
}
}
Blatt Komponente:
@Component({
(...)
template: `
<div (click)="emitEventToRoot()">Emit event</div>
`
})
export class LeafComponent {
constructor(private service:EventService) {
}
emitEventToRoot() {
// Send the event to the root component
this.eventService.subject$.emit('some event');
}
}
Diese Links könnten Sie interessieren:
- 1. Angular 2 Event Broadcast
- 2. Interprozess-Event-Emitter für Node.js?
- 3. Angular 2 event wenn [routerLink] geklickt wurde
- 4. Wie teilt man Daten zwischen zwei Komponenten mit Event Emitter?
- 5. Wie kann ich emittieren ein Ereignis den Emitter in einer Funktion in Angular 2
- 6. Ionic/Schräg 2-Komponenten-Ereignis-Emitter nicht Ansicht Aktualisierung
- 7. Ereignisse an einen Event-Emitter anhängen und entfernen
- 8. Wie verwende ich Flux und Event Emitter mit .net MVC?
- 9. Was genau $ Event-Objekt in Angular 2 tun?
- 10. Angular 2 Tastatur Events
- 11. Angular 2 Animationen
- 12. Angular 2 Parsing Vorlage Fehler
- 13. Wie funktioniert Facebook Emitter?
- 14. Angular 2 Input Sanitization
- 15. Angular 2 und EventEmitter
- 16. eckig 2 Eventbindung - Brauche ich $ Event?
- 17. Ereignis "Angular 2 change" - Modelländerungen
- 18. eventEmitter Listener und Emitter mit unterschiedlichen Parametern
- 19. Angular 2 Custom Pipe
- 20. EventEmitter Probleme in Angular 2
- 21. Angular. 2: Ereignis nicht ausgelöst
- 22. Angular 2 Brandereignis nach ngFor
- 23. Angular 2-Eigenschaft Bindung Lebenszyklus
- 24. Angular 2-Ereignisabonnement funktioniert nicht
- 25. Angular 2 + typscript oder Angular 2 + Javascript welches ist ratsam
- 26. Angular 2 Dokumentation/gibt es ein ngdocs für angular 2?
- 27. Angular ui Raster Doppelklick Event Setup
- 28. Angular - wie man Click Event am Start
- 29. Wie erstelle ich einen Event-Emitter mit Elixier, der otp-Weg
- 30. Angular 2 + Google Analytics + Router Navigation