Sorry für den langatmigen Titel. Ich benutze ngBootstrap und UIRouter, und ich versuche, eine Unterklasse von Ng2StateDeclaration
zu erstellen, die eine ngbModal
öffnet und schließt, wie es eintritt und beendet. Ich kann das ohne Vererbung leicht machen, aber ich bin auf der Suche nach einer besseren Lösung.Wie kann ich eine TypeScript-Klasse erweitern, die eine Schnittstelle implementiert, und einige Implementierungen der übergeordneten Klasse überlassen?
Heres, was ich habe:
var modalInstance:NgbModalRef;
class ModalStateDeclaration implements Ng2StateDeclaration {
name:string;
url:string;
onEnter(transition: Transition, state: Ng2StateDeclaration) {
modalInstance = modalService.open(SomeComponent);
for (var key in transition.params()) {
modalInstance.componentInstance[key] = transition.params()[key];
}
var currentState = transition.from().name;
modalInstance.result.catch(function(reason) {
if (currentState) {
window.history.back();
} else {
stateService.go('home');
}
});
}
onExit() {
modalInstance.close();
}
}
export const modalBookState:ModalStateDeclaration = {
name: 'modalBookState',
url: '/b/:id'
};
Typoskript sagt mir, dass modalBookState
ist onEnter
und onExit
fehlt. Wie kann ich die onEnter
und onExit
Implementierungen von ModalStateDeclaration
verwenden? Muss ich sie mit super()
implementieren?