简体   繁体   English

角绑定ng-if

[英]Angular binding ng-if

I am not able to binding properly, it should toggle on click. 我无法正确绑定,应在点击时切换。 ng-reflect-ng-if becomes true and it remains true, again on click it should be false, I tried (clickoutside) also but no luck. ng-reflect-ng-if如果变为true并保持为true,则再次单击它应该为false,我也尝试过(clickoutside)但没有运气。 Followed this question also from stackoverflow Binding a boolean value using *ngIf 在stackoverflow上也使用* ngIf绑定布尔值也遵循了这个问题

<!--bindings={
      "ng-reflect-ng-if": "true"}-->

TS code TS码

 showAdditionalGraceInfo: boolean = false;
showAdditionalGraceInfo: boolean = false;

       toggleAdditionalGraceInfo() {

        this.showAdditionalGraceInfo = !this.showAdditionalGraceInfo;
        if(this.showAdditionalGraceInfo === true){
          this.showAdditionalGraceInfoWrapper = true;
       } else{
         this.showAdditionalGraceInfoWrapper = false
       }
      }

HTML code HTML代码

 <span (click)="toggleAdditionalGraceInfo()">
                        <span *ngIf="showAdditionalGraceInfoWrapper">
                            {{graceDaysAdditionalInfo}}
                        </span>
                    </span>

Try this 尝试这个

Code TS 代码TS

toggleAdditionalGraceInfo() {
    if(!this.showAdditionalGraceInfo){
      this.showAdditionalGraceInfoWrapper = true;
   } else{
     this.showAdditionalGraceInfoWrapper = false
   }
}

Code HTML 代码HTML

<span (click)="toggleAdditionalGraceInfo()">
   <ng-container *ngIf="showAdditionalGraceInfoWrapper">
     <span>{{graceDaysAdditionalInfo}}</span>
   </ng-container>
</span>

You probably don't need two variables for what you are trying to do. 您可能不需要两个变量来完成您想做的事情。 This is how you can do it if you must use both those variables. 如果必须同时使用这两个变量,这是可以执行的操作。

 <span id="test" (click)="showAdditionalGraceInfoWrapper = showAdditonalGraceInfo = !showAdditionalGraceInfoWrapper"> <span *ngIf="showAdditionalGraceInfoWrapper"> {{graceDaysAdditionalInfo}} </span> </span> 

  showAdditionalGraceInfoWrapper:boolean = true;
  showAdditonalGraceInfo:boolean = true;
  graceDaysAdditionalInfo: string = "test"

Example: https://stackblitz.com/edit/angular-vlfmur 示例: https//stackblitz.com/edit/angular-vlfmur

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM