Angular InnerHTML*ngIf不起作用5

Angular InnerHTML*ngIf不起作用5,angular,innerhtml,angular-ng-if,Angular,Innerhtml,Angular Ng If,要在GIS openlayers地图上显示弹出窗口,我使用InnerHtml属性。 如果字段为false,我想隐藏的是DIV 看起来angular忽略了我的ngif这是我的代码: this.content.innerHTML = ` <div style="width: 150px; float: right; font-size: 13px;" *ngIf="!test"> ${ test } </div> ` t

要在GIS openlayers地图上显示弹出窗口,我使用InnerHtml属性。 如果字段为false,我想隐藏的是DIV

看起来angular忽略了我的ngif这是我的代码:

this.content.innerHTML = `
      <div style="width: 150px; float: right; font-size: 13px;" *ngIf="!test">
              ${ test } 
      </div> `
this.content.innerHTML=`
${test}
`
我的布尔测试是错误的。ngIf确实与innerHTML一起工作吗


当您使用
innerHTML


每当您通过innerHTML传递某些内容时,Angular只会呈现该内容,而不会像添加
ngIf
事件那样计算该内容中的任何表达式或绑定。

您需要添加和删除如下样式

constructor(private elRef: ElementRef) { 

 this.elRef.nativeElement.querySelector('#showResponsiveNavbarone')
 .classList.remove('visibletrue');

}
 <style>
  .visiblefalse{
  display: none !important;
}
.visibletrue{
 display: block !important;
} 
构造函数(私有elRef:ElementRef){
this.elRef.nativeElement.querySelector(“#showResponsiveNavbarone”)
.classList.remove('visibletrue');
}
.可见错误{
显示:无!重要;
}
.显然是真的{
显示:块!重要;
} 

是的,这是真的。您必须编译HTML,这在prod构建中是不可能的,因为您不想将模板编译器与应用程序一起发布。如果您正在用TypeScript代码编写HTML:有些地方出了问题。如果使用innerHTML,通常会出现问题。是否有其他方法可以使*ngif在popover中成为可能?只需在通过Variable
test
分配之前进行检查,您的确切意思是什么?