primeng <p-dropdown>获取上一个选定的值

San*_*N S 1 javascript select dropdown primeng angular

我想在primeng下拉列表中获取之前选择的值.

<p-dropdown [options]="options" [filter]="true" [(ngModel)]="selectedType" (onChange)="onSelectType($event)" formControlName="alertType"></p-dropdown>
Run Code Online (Sandbox Code Playgroud)

在更改事件时,我想使用api检查所选类型是否有效,但是如果它无效则需要还原.由于我使用的是ngModel,因此只要下拉列值发生更改,selectedType的值就会发生变化.

那么我怎样才能获得之前选择的值?

Cha*_*dru 9

此示例的ngModelChange:

app.component.html

<p-dropdown [options]="cities" [(ngModel)]="selectedCity" (ngModelChange)="onSelectType($event)"></p-dropdown>
Run Code Online (Sandbox Code Playgroud)

app.component.ts

import { SelectItem } from 'primeng/primeng';

export class AppComponent {
    cities: SelectItem[];
    selectedCity: any;
    previousVal: any;
    currentVal: any;

    constructor() {
        this.cities = [{
            "label": "London",
            "value": "london"
        }, {
            "label": "USA",
            "value": "usa"
        }];
    }

   onSelectType(event) {
       if(event) {
           this.previousVal = this.currentVal;
           this.currentVal = event;
       }
       console.log('this.previousVal', this.previousVal);
       console.log('this.currentVal', this.currentVal);
   }
}
Run Code Online (Sandbox Code Playgroud)

app.module.ts

import { DropdownModule } from 'primeng/primeng';

imports: [ DropdownModule ]
Run Code Online (Sandbox Code Playgroud)

解决方案是使用ngModelChange ;