Angular 4 + Bootstrap 组件模态
Angular 4 + Bootstrap Component Modal
所以我正在考虑在应用程序中实现一个组件,它可以充当 Bootstrap modal 中的组件以及页面中的常规 child 组件。
在示例中(上面 link 页面底部标题为 'Components as content'),在您的模式中实现的组件需要将 NgbActiveModal 添加到该组件的构造函数中。当我尝试执行上述操作时,这会阻止我的组件作为常规 child 组件实现。
在不制作包装器组件的情况下解决类似问题的任何想法?
所以我设法从 中找到了答案。
通过添加 @Optional 装饰器并将您的子组件修改为如下所示,您可以编写额外的代码以允许它在模态中作为常规组件运行。
本例中的@Optional 装饰器只会将其注入到组件被用作模态组件时被调用的地方。我想添加?参数修饰符本来可以做同样的事情,但显然不是。
...
constructor(@Optional() private activeModal: NgbActiveModal){
...
}
...
finish(){
if(this.activeModal){
this.activeModal.dismiss(data);
}else{
//regular component finish code
}
}
非常感谢@Aravind 愿意花自己的时间来协助 :) 干杯伙计。
所以我正在考虑在应用程序中实现一个组件,它可以充当 Bootstrap modal 中的组件以及页面中的常规 child 组件。
在示例中(上面 link 页面底部标题为 'Components as content'),在您的模式中实现的组件需要将 NgbActiveModal 添加到该组件的构造函数中。当我尝试执行上述操作时,这会阻止我的组件作为常规 child 组件实现。
在不制作包装器组件的情况下解决类似问题的任何想法?
所以我设法从
通过添加 @Optional 装饰器并将您的子组件修改为如下所示,您可以编写额外的代码以允许它在模态中作为常规组件运行。
本例中的@Optional 装饰器只会将其注入到组件被用作模态组件时被调用的地方。我想添加?参数修饰符本来可以做同样的事情,但显然不是。
...
constructor(@Optional() private activeModal: NgbActiveModal){
...
}
...
finish(){
if(this.activeModal){
this.activeModal.dismiss(data);
}else{
//regular component finish code
}
}
非常感谢@Aravind 愿意花自己的时间来协助 :) 干杯伙计。