所以我使用的是角度8。我有两个下拉列表。仅包含已经填充的数据。还有一个来自服务器的数据。但是,如果下拉列表显示了来自服务器的选定数据,那么现在我想用已经填充的数据隐藏它。
具有所选数据
<div class="search-select searchoptions" *ngIf="selectedSearch && hasOtherOptions(selectedSearch)">
<mat-select placeholder="Opties" name="option" [(ngModel)] = "selectedValue" >
<mat-option *ngFor="let option of getOtherOptions(selectedSearch)" [value]="option.apiStatus" >
{{ option.status }}
</mat-option>
</mat-select>
</div>
没有来自服务器的填充数据:
<div class="search-select searchoptions" *ngIf="selectedSearch && hasOtherOptions(selectedSearch)">
<mat-select placeholder="Opties" name="option" [(ngModel)] = "selectedValueOptie" (click)="getQrCodes()" >
<mat-option *ngFor="let option of returnQrCodes$ | async " value="option.value" >
{{ option.qrCode }}
</mat-option>
</mat-select>
</div>
我有一个检查选项是否选中的功能:
searchFor() {
if (this.selectedSearch === 'Registratie') {
this.filerByRegistration();
}
if (this.selectedSearch === 'Chat') {
this.filterByChat();
}
if (this.selectedSearch === 'Inlog') {
this.filterByInlog();
}
if (this.selectedSearch === 'QrCode') {
this.filterByQrCodes();
}
if (this.selectedSearch === 'Doelen') {
this.filerByChallenge();
}
}
当然,这必须重构。但这是以后的情况。
因此,当选择选项QrCode时,必须隐藏“具有所选数据”下拉列表,反之亦然。因此,当选择Doelen选项时,必须隐藏包含服务器数据的下拉列表。
但是如何归档呢?
谢谢
答案 0 :(得分:1)
您可以设置boolean
以显示/隐藏下拉菜单。
showDropdown:boolean = false
searchFor() {
this.showDropdown = false;
if (this.selectedSearch === 'Registratie') {
this.filerByRegistration();
}
...
}
filerByRegistration(){
...
// after data is fetched
this.showDropdown = true;
}
模板:
<div class="search-select searchoptions" *ngIf="showDropdown && selectedSearch && hasOtherOptions(selectedSearch)">
<mat-select placeholder="Opties" name="option" [(ngModel)] = "selectedValueOptie"
...
</mat-select>
</div>