Angular Hide With Button

丶灬走出姿态 提交于 2019-12-22 08:08:04

问题


So I'm working with angular and I'm trying to make a button that when clicked disappears. i have tried to use [hidden], (click)="showHide = !showHide", and a bunch of other methods. nothing is working so far.

my html (currently):

<div class="rows">
 <div class="a-bunch-of-styles-for-my-button">
  <a type="button" class="more-styles" (click)="inboundClick = !inboundClick" [routerLink]="['/inbound']" href="">
  </a>
 </div>
</div>

and my component:

export class AppComponent {
inboundClick = false;
}

in essence i have 2 buttons on a page and when one button is clicked i want to hide both buttons and display a set of new buttons.

I'm very new to Angular and im very confused why this wont work.


回答1:


Your HTML

<div class="yourCssClass" *ngIf="this.isButtonVisible" (click)="this.isButtonVisible = false">
...
</div>

Your TypeScript

export class AppComponent {
   private isButtonVisible = true;
}

This should do the job. *ngIf automatically hides the element, if the condition evaluates false, so setting the variable to false is sufficient.

The problem I see here is, that you don't control the visibility at any point. Using [ngClass] to add a specific class, if a condition is met, or *ngIf is helpful, whenever you try to change elements on user interaction.

For more information on [ngClass], you can read about its usage here: https://angular.io/api/common/NgClass

You can read about *ngIf here: https://angular.io/api/common/NgIf

Especially the "Common Use" part should be interesting for you.

Edit: Reading your comment below it seems you did not notice what [hidden] and (click) actually do. [hidden] controls the visibility of the element, usually dependent on a certain condition. (click) however is a quick way to bind a Click-Event to your element.

Using both of those tools enables to hide an element, by changing a variable, if a user clicks on your element (the new value of the variable may be assigned by a function called by (click) or inline, as demonstrated in the example code).

Edit2: Yep, you meant Angular2/4 ;) So this should do the job.




回答2:


Here is how you can achieve that:

In your component.html:

<a type="button" class="more-styles" 
   [hidden]="!inboundClick" 
   (click)="inboundClick = !inboundClick" 
   [routerLink]="['/inbound']" href="">
</a>

<a type="button" class="more-styles" 
   [hidden]="!outboundClick " 
   (click)="outboundClick = !outboundClick " 
   [routerLink]="['/outbound']" href="">
</a>

... and in your AppComponent:

export class AppComponent {
    inboundClick = true;
    outboundClick = true;
}

PLUNKER DEMO



来源:https://stackoverflow.com/questions/45549297/angular-hide-with-button

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