component.ts :
public myFlag: boolean = false;
changeFlag(){
this.myFlag = true;
}
component.html :
<ng-template *ngIf="newPOST">{{newPOST}}</ng-template>
当我按下调用changeFlag()
的按钮时,我希望看到 true ,但在我的控制台中总是这样:
<!--bindings={
"ng-reflect-ng-if": "false"
}-->
这不会成为现实。每次按下按钮进行更改时,如何绑定此布尔值?
答案 0 :(得分:3)
*ngIf
不适用于<ng-template>
,因为它是Structural Directives。您可以找到更多详细信息here
作为一种解决方法,您可以使用*ngIf else
来实现它
<div *ngIf="!myFlag;else myFlagTrue;">
</div>
<ng-template #myFlagTrue>{{myFlag}}</ng-template>
以下是工作 example
答案 1 :(得分:1)
根据您关于公共汽车和汽车的示例进行检查:https://stackblitz.com/edit/angular-tyqgkx
答案 2 :(得分:0)
您可以单独使用myFlag
变量
<ng-template *ngIf="myFlag">{{newPOST}}</ng-template>
答案 3 :(得分:0)
*ngIf
没有使用<ng-template>
。
使用<ng-container>
进行*ngIf
- 检查而不是div
。如果您使用的是div
,那么如果div
为假,则模板中会显示空myFlag
。
例如:
<ng-container *ngIf="myFlag; else myFlagFalse;">
{{newPOST}}
</ng-container>
<ng-template #myFlagFalse>
// something, if myFlag is false
</ng-template>