如何使用ngModel和ngModelChange angular 4更改下面的数组列表

时间:2018-07-12 10:34:27

标签: html angular typescript

我有两个数组列表,彼此不同,在顶部,我有一个下拉列表,它将更新下面的列表。 如果我单击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();
    }
}

0 个答案:

没有答案