如何通过按钮在同一个 angular 组件中显示一个或另一个列表?
How to display one list or another in the same angular component through buttons?
我的 html
中有两个列表
<div class="list" *ngIf="models !== undefined && models.length">
<div class="model" *ngFor="let model of menuModels">
<div class="name">{{model.name}}</div>
</div>
<div class="operator" *ngFor="let operator of menuOperators">
<div class="name">{{operator.name}}</div>
</div>
</div>
并且我在同一个菜单中创建了两个按钮来显示一个或另一个,具体取决于选择的按钮
<div class="buttons">
<div class="btn" (click)="showModels()"><p class="initial">M</p></div>
<div class="btn" (click)="showOperators()"><p class="initial">O</p></div>
</div>
现在两个列表显示在同一个组件中。
如何通过按钮管理 *ngIf 以便根据相应的按钮显示一个或另一个?
或者最好的方法是什么?
提前谢谢你
In your component take a boolean instance variable that will act as a toggle for displaying your lists
- 现在,当您点击 showModels 按钮时使其变为真,这意味着您将显示 menuModels
- 现在当您点击 showOperators 按钮时将其设置为 false,这意味着您将显示 menuOperators
尽可能多地使用布尔值,而不是比较字符串。作为。布尔值将始终有 1 位存储。
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'xyz-abc',
templateUrl: './xyz-abc.html',
styleUrls: ['./xyz-abc.css']
})
export class XYZComponent implements OnInit {
isDisplayModel: boolean = true;
constructor(
) {
}
ngOnInit() {
}
showModels(){
isDisplayModal = true;
}
showOperators(){
isDisplayModal = false;
}
}
Your HTML code will look like below
<div class="list" *ngIf="models !== undefined && models.length">
<div class="row" *ngIf="isDisplayModal">
<div class="model" *ngFor="let model of menuModels">
<div class="name">{{model.name}}</div>
</div>
</div>
<div class="row" *ngIf="!isDisplayModal">
<div class="operator" *ngFor="let operator of menuOperators">
<div class="name">{{operator.name}}</div>
</div>
</div>
您需要像这样包装两个列表:
<!-- First list -->
<div *ngIf="isModel; else myTemplate">
<div class="list" *ngIf="models !== undefined && models.length">
<div class="model" *ngFor="let model of menuModels">
<div class="name">{{model.name}}</div>
</div>
</div>
</div>
<!-- Second List -->
<ng-template #myTemplate>
<div class="operator" *ngFor="let operator of menuOperators">
<div class="name">{{operator.name}}</div>
</div>
</ng-template>
现在在你的 ts 中定义一个布尔值 isModel:isModel=true
并在单击时切换它:
showModels(){
this.isModel=true;
}
showOperators(){
this.isModel=false
}
我的 html
中有两个列表<div class="list" *ngIf="models !== undefined && models.length">
<div class="model" *ngFor="let model of menuModels">
<div class="name">{{model.name}}</div>
</div>
<div class="operator" *ngFor="let operator of menuOperators">
<div class="name">{{operator.name}}</div>
</div>
</div>
并且我在同一个菜单中创建了两个按钮来显示一个或另一个,具体取决于选择的按钮
<div class="buttons">
<div class="btn" (click)="showModels()"><p class="initial">M</p></div>
<div class="btn" (click)="showOperators()"><p class="initial">O</p></div>
</div>
现在两个列表显示在同一个组件中。 如何通过按钮管理 *ngIf 以便根据相应的按钮显示一个或另一个? 或者最好的方法是什么? 提前谢谢你
In your component take a boolean instance variable that will act as a toggle for displaying your lists
- 现在,当您点击 showModels 按钮时使其变为真,这意味着您将显示 menuModels
- 现在当您点击 showOperators 按钮时将其设置为 false,这意味着您将显示 menuOperators
尽可能多地使用布尔值,而不是比较字符串。作为。布尔值将始终有 1 位存储。
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'xyz-abc',
templateUrl: './xyz-abc.html',
styleUrls: ['./xyz-abc.css']
})
export class XYZComponent implements OnInit {
isDisplayModel: boolean = true;
constructor(
) {
}
ngOnInit() {
}
showModels(){
isDisplayModal = true;
}
showOperators(){
isDisplayModal = false;
}
}
Your HTML code will look like below
<div class="list" *ngIf="models !== undefined && models.length">
<div class="row" *ngIf="isDisplayModal">
<div class="model" *ngFor="let model of menuModels">
<div class="name">{{model.name}}</div>
</div>
</div>
<div class="row" *ngIf="!isDisplayModal">
<div class="operator" *ngFor="let operator of menuOperators">
<div class="name">{{operator.name}}</div>
</div>
</div>
您需要像这样包装两个列表:
<!-- First list -->
<div *ngIf="isModel; else myTemplate">
<div class="list" *ngIf="models !== undefined && models.length">
<div class="model" *ngFor="let model of menuModels">
<div class="name">{{model.name}}</div>
</div>
</div>
</div>
<!-- Second List -->
<ng-template #myTemplate>
<div class="operator" *ngFor="let operator of menuOperators">
<div class="name">{{operator.name}}</div>
</div>
</ng-template>
现在在你的 ts 中定义一个布尔值 isModel:isModel=true
并在单击时切换它:
showModels(){
this.isModel=true;
}
showOperators(){
this.isModel=false
}