Angular 角度5-角度服务不';t在'Modal'模式中显示数据`
我正在使用一个组件和服务来处理我的应用程序中的modals。 在Angular 角度5-角度服务不';t在'Modal'模式中显示数据`,angular,modal-dialog,angular-services,Angular,Modal Dialog,Angular Services,我正在使用一个组件和服务来处理我的应用程序中的modals。 在download.component.ts中,我有一个打开模式窗口的方法 下载.component.ts 构造函数(私有modalService:modalService){} 公共openModalProperty(id:string,nameFile:string){ this.properties=[]; 此.propertyService.byFile(+id).subscribe( 数据=>{ 这个属性=数据; if(th
download.component.ts
中,我有一个打开模式窗口的方法
下载.component.ts
构造函数(私有modalService:modalService){}
公共openModalProperty(id:string,nameFile:string){
this.properties=[];
此.propertyService.byFile(+id).subscribe(
数据=>{
这个属性=数据;
if(this.properties&&this.properties.length>0){
this.titleFile=nameFile;
此.openModal(“模式下载”);
}否则{
此.属性(此.标题文件);
}
},
_ => {
this.processError();
}
);
}
公共OpenModel(id:字符串){
this.modalService.open(id);
}
properties
是对象的数组,其数据显示在模式窗口中。
模板如下:
下载.component.html
{{property.name}}:{{property.value}
在localhost
中,它工作正常,我点击按钮
,它会显示带有相应数据的模式
,但当我将其上传到生产时,模式窗口会打开,但物业安排的信息不会显示,或者只有当我按键盘上的任意键或单击鼠标时,它才会加载信息
会发生什么
谢谢。为了确保检测不是问题,在构造函数中添加cdr
作为组件中的依赖项,然后在this.modalService.open(id)之后添加setTimeout(()=>this.cdr.detectChanges())
代码>
出于教育方面的原因,我将尝试解释
您触发模式服务并打开模式服务
模态正在打开,但尚未触发值的更改检测,因为值在创建模态实例之前已更改
这就是为什么在左键或右键单击后,一切正常。这是因为您通过单击触发了组件以检查检测,并通过触发的组件对所有子组件进行检测
我在这里发表了我的评论,因为这似乎是正确的答案。似乎存在更改检测问题,您是否有任何组件OnPush
?在模式打开后,可能尝试手动检查更改
?我没有OnPush,但我不知道手动检查更改意味着什么:(可能不是这样,但是:。仍然值得学习。您的控制台中有任何错误吗?谢谢,我会检查它,我没有发现任何错误,模式打开,模式显示为空,但按任意键都会显示信息。为确保检测
不是问题,请将cdr
添加为ChangeDetectionRef
中将构造函数作为组件中的依赖项,然后在'this.modalService.open(id);'之后添加setTimeout(()=>this.cdr.detectChanges())
。解决方案肯定是正确的,我正在测试,一切都很好。