这是我的代码:https://angular-gcmti7.stackblitz.io
在左侧,我有网格图案,有助于生成HTML布局。 必须在空面板上拖动这些图案。
我在触发元素上生成的菜单上的click事件时遇到问题。我必须将动态菜单附加到动态生成的HTML块。根据选择,它们的数量可以是N.
我尝试了这些,但没有工作: 1)菜单//选择器的子组件呈现是静态附加的。 2)直接HTML呈现// HTML块静态附加。
请建议一种让点击事件在这些菜单图标上运行的方法。
答案 0 :(得分:1)
你的逻辑似乎与常规的Angular开发有点不同。花了将近一天的时间为您尝试解决方案,但我没有找到确切的解决方案,但希望我的以下发现可以帮助您。
ComponentFactoryResolver的resolveComponentFactory
方法接受角度组件。
关于动态HTML注入的文章https://medium.com/@caroso1222/angular-pro-tip-how-to-dynamically-create-components-in-body-ba200cc289e6
在您的情况下,您将HTML注入模板,而不是组件。要注入HTML,请将其保存在变量中并使用DomSanitizer对其进行清理或绕过安全检查
这可能会对你有帮助。
export class main_page{
data: SafeHtml;
constructor(private sanitizer: DomSanitizer) {}
ngOnInit(){
this.getDynamicREST().then((res)=> {
this.data = this.sanitizer.sanitize(res);
/* OR */
this.data = this.sanitizer.bypassSecurityTrustHtml(res);
})
};
}
然后,在您的模板中:
<div class="top">
<div [innerHtml]="data"></div>
</div>