primeng <p-dropdown> 获取之前选择的值
primeng <p-dropdown> get previous selected value
我想在 primeng 下拉列表中获取之前选择的值。
<p-dropdown [options]="options" [filter]="true" [(ngModel)]="selectedType" (onChange)="onSelectType($event)" formControlName="alertType"></p-dropdown>
关于更改事件,我想使用 api 检查所选类型是否有效,但如果无效则需要还原。由于我使用的是 ngModel,只要下拉值发生变化,selectedType 的值就会发生变化。
那么如何获取之前选择的值呢?
ngModelChange 的示例:
app.component.html
<p-dropdown [options]="cities" [(ngModel)]="selectedCity" (ngModelChange)="onSelectType($event)"></p-dropdown>
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);
}
}
app.module.ts
import { DropdownModule } from 'primeng/primeng';
imports: [ DropdownModule ]
解决方案是使用 ngModelChange;
我想在 primeng 下拉列表中获取之前选择的值。
<p-dropdown [options]="options" [filter]="true" [(ngModel)]="selectedType" (onChange)="onSelectType($event)" formControlName="alertType"></p-dropdown>
关于更改事件,我想使用 api 检查所选类型是否有效,但如果无效则需要还原。由于我使用的是 ngModel,只要下拉值发生变化,selectedType 的值就会发生变化。
那么如何获取之前选择的值呢?
ngModelChange 的示例:
app.component.html
<p-dropdown [options]="cities" [(ngModel)]="selectedCity" (ngModelChange)="onSelectType($event)"></p-dropdown>
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);
}
}
app.module.ts
import { DropdownModule } from 'primeng/primeng';
imports: [ DropdownModule ]
解决方案是使用 ngModelChange;