html - 如何在角度服务中创建 html 模板并将其用作 htmlTemplateRef?
问题描述
我正在做一个大型项目,我需要一个要求。
我正在使用一个可以为我打开对话框(模态)弹出窗口的库。为此,我需要为该开放模式进程配置一些选项,如下所示:
this.modalService.template(template, { data : { fruit: 'apple'} })
变量template
声明如下:
@ViewChild(TemplateRef, { static: false }) template: TemplateRef<{}>;
但为此,我们需要一个我没有的 html 模板文件。
我的服务是这样的:
@ViewChild(TemplateRef, { static: false }) template: TemplateRef<{}>;
constructor() {
}
ShowModal(){
this.modalService.template(template, { data : { fruit: 'apple'} })
}
但我不知道如何在角度服务中使用 html 模板。
如何在 htmlhtml template
中使用angular service
?如果有人知道答案,请在此处提及。
解决方案
您可以通过以下两种方式之一进行:
- 创建一个组件,该组件在初始化时将模板传递给服务,然后将组件加载到视图中的某个位置。
templateRef
调用ShowModal
函数时传递:this.modalService.ShowModal(templateRef, data)
选项 1 感觉更自然,因为您可以真正轻松地创建模态,而选项 2 适用于每个选项之间模态完全不同的情况,例如当您要填写表格时等。
这是一个显示选项 1 的片段(并使用指令添加了另一个转折)
推荐阅读
- c# - 在 parent 内部创建一个新的表单实例,并能够访问父表单
- r - 错误:使用 kable 时缺少插入的 $
- python - 从 Seaborn 热图格式中排除列,但保留在地图中
- sql - 在 SQL 中附加值
- java - 如何使用 mockito 和 testNg 测试枚举中的默认值
- html - HTML5 获取在画布中创建的图像的 base64 代码
- javascript - 虚拟数据库,导出多个默认值
- java - JOOQ 中的 CASE 表达式
- swift - 如何获得Double小数点后的第一个数字?
- ios - 如何使用自定义科尔多瓦插件从 ionic1 到本机 ios swift 进行通信