对不起,这个漫长的标题。我使用的是ngBootstrap和UIRouter,我试图创建一个Ng2StateDeclaration
的子类,它打开并关闭ngbModal
进入和退出。我可以很容易地做到这一点,而不需要继承,但是我需要更好的解决方案。如何扩展实现接口的TypeScript类,并将某些实现留给父类?
继承人什么我有:
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'
};
打字稿告诉我,modalBookState
缺少onEnter
和onExit
。我如何使用ModalStateDeclaration
的onEnter
和onExit
实现?我是否需要使用super()
来实现它们?