我创建了一个模态组件ImportCardModalComponent
,登录失败后必须打开这个组件,如下所示:
this.authSerivce.logInRegular(this.model).then(result => {
console.log(result);
}, error => {
var importModal = this.modalService.open(ImportCardModalComponent);
});
问题是对话框不会出现,除非我点击屏幕上的按钮两次,并激发服务两次。第一次我点击按钮,DOM元素添加成功,但没有css class
在<ngb-modal-backdrop> and <ngb-modal-window>
中。如下图所示。
第二次我点击按钮,classes
显示正确。如下图所示:
模态必须有class ="modal-backdrop fade show"
在背景元素。以及class="modal fade show d-block"
在窗口元素。
我尝试使用modalService与NgbModalOptions
backdropClass
和windowClass
没有任何成功的工作,从第一次。
如果我将开放模式服务移到拒绝回调之外,它就可以正常工作。
任何帮助都是非常感谢的。
2条答案
按热度按时间r6vfmomb1#
一种方式是在模态服务调用之后手动触发变化检测。
获取
ApplicationRef
的引用然后调用变化检测:
8ehkhllq2#
您可以通过在ngZone内运行代码来强制执行Angular 变化检测
...
...