我有一个下拉列表,当前以阵列方式显示对象。JSON 数据来自注入到组件中的服务。我根据 iso_id 过滤数据,从下拉列表中选择一个选项后,我会显示过滤后的数据。我仅在选择相应选项后单击按钮(数组)时才尝试显示此数据。现在,从下拉列表中选择一个选项会显示数据,然后单击 Array 按钮使其消失。如何将此数据传递给按钮单击?这是一些示例代码-
HTML
<md-select [(ngModel)]="selectedISO" (ngModelChange)="onSelect(selectedISO)" placeholder="TSO" [(ngModel)]="containerDisplay" >
<md-option value="Charge Only" > Charge Only </md-option>
<md-option value="PJM" >PJM </md-option>
<md-option value="Not in ISO Market" > Not in ISO Market </mdoption>
<md-option value="UCSD"> UCSD </md-option>
</md-select>
<button md-button (click)="onClickArray(selectedISO)" [(ngModel)]="containerDisplay" ngDefaultControl>
Array
</button>
<div class="ui-ivs-container" *ngIf="containerDisplay" >
<div class="ui-ivs-resources">
<div *ngFor="let resource of isoToShow; let i = index;"
[ngClass]="{...}">
//Array of objects gets displayed//
</div>
</div>
我的 TS 文件看起来像这样-
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss']
})
export class HomeComponent implements OnInit {
containerDisplay:boolean;
selectedISO;
constructor(private service: Service) {
this.isoToShow=this.isoArray; // gets populated by subscribing to service
}
onSelect(val){
console.log(val);
this.onClickArray(val);
}
onClickArray(val){
this.isoToShow=this.isoArray.filter(resource => resource.iso_id===val)
}
}