How to toggle (show/hide) element in Angular 4?

匿名 (未验证) 提交于 2019-12-03 01:36:02

问题:

This is my html element:

<ng-container>     <span *ngIf="row.messageText && row.messageText.length >= 30 && expanded">{{row.messageText.substr(0, 25)}}         <span>more</span>     </span> </ng-container> 

It shows part of a message when row.messageText.length is greater than 30. I need first span to show entire message (by using row.messageText.substr()) after clicking the more span. I think that there is a solution by using (click)="toggle()" and setting some true/false values.

Do you have any ideas?

回答1:

<ng-container>     <span *ngIf="row.messageText && row.messageText.length >= 30 && expanded == false">{{row.messageText.substr(0, 25)}}         <span (click)="expanded = true">more</span>     </span> <span *ngIf="expanded == true">{{row.messageText}}</span> </ng-container> 

and set expanded = false initially in your ts file



回答2:

You can:

<ng-container>     <div>           <span *ngIf="row.messageText && row.messageText.length < 30">{{row.messageText}}</span>           <span *ngIf="row.messageText && row.messageText.length >= 30 && !expanded">{{row.messageText.substr(0, 25)}}</span>           <span *ngIf="row.messageText && row.messageText.length >= 30 && expanded">{{row.messageText.substr(0, 25)}}</span>           <span (click)="toggle()">{{expanded?'less':'more'}}</span>     </div> </ng-container> 

component:

toggle(){      this.expanded = !this.expanded; } 


回答3:

As you mentioned in the question, you can pass the row to the function using click event as follows

 <span (click)="enableSpan(row)">more</span> 

and then inside typescript.

enableSpan(row:any){    row.expand = true; } 

and the corresponding HTML would be

<span *ngIf="row.expand">{{row.messageText}}</span> 


回答4:

You can try this way

<span *ngIf="row.messageText"> {{(row.messageText.length >= 30 && expanded == false)? row.messageText.substr(0, 25) : row.messageText}}    <span style="color: blue;" *ngIf="row.messageText.length >= 30" (click)=" expanded = !expanded ">{{(!expanded)? 'more' : 'less'}}</span> </span> 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!