我有两个数组列表,彼此不同,在顶部,我有一个下拉列表,它将更新下面的列表。 如果我单击OrgItem,我想显示orgItems;如果我单击valueIte,则显示valueItem的列表 当我从OrgItem更改为ValueItem或从VI更改为Org时,在onOrgItemFilterChanged的控制台日志中,它正在工作并向我显示列表已更改,但UI并未更改
这是我的空投
<app-dropdown label="{{'general.#choose'|translate}} Array" orientation="left" labelWidth="125px" optionWidth="150px" [(ngModel)]="filterArray" [items]="arrayType" (ngModelChange)="onOrgItemFilterChanged()"></app-dropdown>
这是我的* ngFor
列表<div *ngFor="let valueItem of isArray() ? visibleAvailableOrgItem : visibleAvailableValueItems">
<div class="unAssignedVIs" [ngClass]="{'active': valueItem.checked, 'unAssignedVIs': true}">
{{valueItem.name}}
</div>
</div>
这是我的TS文件
filterArray = 'ValueItem';
visibleAvailableValueItems: ValueItem[] = [];
visibleAvailableOrgItem: OrganizationItem[] = [];
arrayType: DropdownOption[] = [
{ key: 'ValueItem', value: 'ValueItem', selected: false},
{ key: 'OrgItem', value: 'OrgItem', selected: false}
];
isArray(any): void {
}
onOrgItemFilterChanged(resetSelected = true) {
if (this.filterArray === 'OrgItem') {
this.visibleAvailableOrgItem = this.orgItem.toArray();
} else if (this.filterArray === 'ValueItem') {
this.visibleAvailableValueItems = this.valueItems.filter(vis => vis.level === 7).toArray();
}
}