Ich suchte @this SO Q & A, und fragte mich, ob es möglich war, eine Basis abstract class
stattdessen zu haben? Statt einer interface
ist es möglich, unterschiedliche Implementierungen einer Basisklasse in untergeordneten Komponenten zu haben, die für die Stammkomponente über den @ViewChild
Dekorator in Angular2 zugänglich sind?Angular2 - @ViewChild von TypeScript Basis abstrakten Klasse
Idealerweise hätte ich gerne eine Möglichkeit für untergeordnete Komponenten, die über einen Elternknoten Router
instanziiert werden, um den übergeordneten Router aufrufen zu können - macht das Sinn? Ich möchte, dass das Kind parentRouter.navigate(["SomeOtherRoute", { args: 'blah' }]);
anrufen kann.
Mein erster Ansatz bestand darin, die untergeordneten Komponenten eine Basisklasse implementieren zu lassen, die die übergeordnete Komponente über den @ViewChild
Decorator beziehen würde. Das übergeordnete Element würde subscribe
für die Aktion des untergeordneten Objekts sein, das versucht, ein Navigationsereignis aufzurufen, und sein Handler würde router.navigate
aufrufen (da es den Router auf der übergeordneten Ebene hat).
Vielen Dank! Ich werde dann den hier definierten Service-Ansatz implementieren, https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service. –
Das ist normalerweise der bevorzugte Weg. –