javascript - primeng <p-dropdown> 获取之前选择的值

标签 javascript angular select dropdown primeng

我想在 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

关于javascript - primeng <p-dropdown> 获取之前选择的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46156187/

相关文章:

javascript - 在 three.js 中从场景中完全移除网格的正确方法是什么?

javascript - 如何在 javascript 或 jquery 中将键添加到数组中的对象

mysql select - 当列不存在时,select AVG() 查询不返回

mysql - 在 MySql 中,如何将数据插入到引用其他三个表的表中,然后选择该数据?

javascript - Node 的通用日志记录,快速应用程序——最佳实践?

javascript - jQuery 过早地向元素添加 css 属性

Angular2 ngModelChange 以前的值

javascript - ckeditor - 获取最后一个光标位置并在该 Angular 5 处附加 html

angular2 Observable 属性 'debouceTime' 在类型 'Observable<any>' 上不存在

sql - 没有子查询的表的多次传递