Угловой 8 скрыть div и показать div при нажатии кнопки - PullRequest
0 голосов
/ 28 октября 2019

Я новичок в angular и у меня проблема с скрытым и показанным контентом. У меня есть 3 кнопки, кнопка A, кнопка B и кнопка c. Когда я нажимаю на кнопку A, содержимое кнопки A, т. Е. Div A, должно быть видно, содержимое кнопки B, т. Е. Div B, и кнопки C, т. Е. Div C, должно скрываться следующим образом.

Но я могу отобразитьсоответствующие дивы при нажатии на соответствующие кнопки, но я не могу спрятать два других дива.

Может ли кто-нибудь мне помочь.

Заранее спасибо.

Пожалуйста, найдите ниже код, который я пробую.

previousWeekData(){
  console.log("Previous Button Clicked");
  this.isShow = !this.isShow; 
}
nextWeekData(){
  console.log("Next Button Clicked");
  this.isShow = !this.isShow;   
}
todaysWeekData(){
  console.log("Todays Button Clicked");
  this.isShow = !this.isShow;
}
<div class="container">
 <div class="row">
                <div class="col-md-4">
                    <div class="btn-group">
                        <div class="btn btn-dark"  [(viewDate)]="viewDate" (click)="previousWeekData()">
                            Previous
                        </div>
                        <div class="btn btn-outline-secondary" (click)="todaysWeekData()">
                            Today
                        </div>
                        <div class="btn btn-dark"  [(viewDate)]="viewDate" (click)="nextWeekData()">
                            Next
                        </div>
                    </div>
                </div>
	</div>
	<div class="row">
	<div *ngIf = "isShow">Previous week datay.</div>
            <div *ngIf = "!isShow">Next week data.</div>
            <div *ngIf = "isShow">Current week data</div>
	</div>
</div>

Ответы [ 4 ]

0 голосов
/ 28 октября 2019

В .ts файле

show = 'A';

В .html

<div class="container">
 <div class="row">
                <div class="col-md-4">
                    <div class="btn-group">
                        <div class="btn btn-dark"  [(viewDate)]="viewDate" (click)="show = 'A'">
                            Previous
                        </div>
                        <div class="btn btn-outline-secondary" (click)="show = 'B'">
                            Today
                        </div>
                        <div class="btn btn-dark"  [(viewDate)]="viewDate" (click)="show = 'C'">
                            Next
                        </div>
                    </div>
                </div>
    </div>
    <div class="row">
    <div *ngIf = "isShow == 'A'">Previous week datay.</div>
            <div *ngIf = "isShow == 'B'">Next week data.</div>
            <div *ngIf = "isShow == 'C'">Current week data</div>
    </div>
</div>
0 голосов
/ 28 октября 2019

Вы можете легко сделать это, поддерживая свойство класса компонента currDiv и инициализируя его как A.

В вашем шаблоне компонента у вас может быть кнопка для отображения div как

<button type="button" (click)="ShowDiv('A')">Show A</button>

и в классе шаблона вы можете установить для `currDiv значение

ShowDiv(divVal: string) {
    this.currDiv = divVal;
}

, и вы можете управлять видимостью div как

<div *ngIf="currDiv == 'A'">
    Div A
</div>

StackBlitz в: https://stackblitz.com/edit/angular-showdivonclicktoggle

0 голосов
/ 28 октября 2019

Попробуйте так:

Рабочая демоверсия

Шаблон:

<div class="container">
    <div class="row">
        <div class="col-md-4">
            <div class="btn-group">
                <div class="btn btn-dark"
                    (click)="showDiv.previous = !showDiv.previous;showDiv.current = false;showDiv.next = false">
                    Previous
                </div>
                <div class="btn btn-outline-secondary"
                    (click)="showDiv.current = !showDiv.current;showDiv.previous = false;showDiv.next = false">
                    Today
                </div>
                <div class="btn btn-dark" (click)="showDiv.next = !showDiv.next;showDiv.previous = false;showDiv.current = false">
                    Next
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div *ngIf="showDiv.previous">Previous week datay.</div>
        <div *ngIf="showDiv.next">Next week data.</div>
        <div *ngIf="showDiv.current">Current week data</div>
    </div>
</div>

TS:

showDiv = {
  previous : false,
  current : false,
  next : false
}
0 голосов
/ 28 октября 2019
<div *ngIf="div1">
    ABC
</div>
<div>
    DEF
</div>
<div>
    GHI
</div>
<button (click)="div1Function()"></button>
<button (click)="div2Function()"></button>
<button (click)="div3Function()"></button>

ФАЙЛ ТС

    div1:boolean=true;
    div2:boolean=true;
    div3:boolean=true;

    div1Function(){
        this.div1=true;
        this.div2=false;
        this.div3=false
    }

    div2Function(){
        this.div2=true;
        this.div1=false;
        this.div3=false
    }

    div3Function(){
        this.div3=true;
        this.div2=false;
        this.div1=false
    }
...