【发布时间】:2017-08-24 10:37:12
【问题描述】:
对不起,冗长的标题。我正在使用 ngBootstrap 和 UIRouter,我正在尝试创建 Ng2StateDeclaration 的子类,它在进入和退出时打开和关闭 ngbModal。我可以在没有继承的情况下轻松做到这一点,但我想要一个更简洁的解决方案。
这就是我所拥有的:
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'
};
TypeScript 告诉我 modalBookState 缺少 onEnter 和 onExit。如何使用来自ModalStateDeclaration 的onEnter 和onExit 实现?我需要用super() 来实现它们吗?
【问题讨论】: