Я применил мультифильтр к сетке кендо, мое приложение разработано в угловых 5, здесь проблема в том, что при удалении последнего символа из поля ввода это временное событие не срабатывает.как можно решить эту проблему.
пример, если я наберу что-то в поле ввода 'alen', функция dataStateChange будет каждый раз, то же самое при удалении 'alen' последние три позже, при удалении этой функции времени будет удаляться только первый символили удалить его не будет вызывать (dataStateChangefunction). пожалуйста, помогите мне.
html
<kendo-grid
[data]="gridData"
[sortable]="{ mode: 'multiple' }"
[sort]="sort"
[filterable]="true"
(dataStateChange)="dataStateChange($event)"
[height]="500"
>
<kendo-grid-column field="ProductID" title="Product ID" width="120">
</kendo-grid-column>
<kendo-grid-column field="ProductName" title="Product Name">
</kendo-grid-column>
<kendo-grid-column field="UnitPrice" title="Unit Price" width="230">
</kendo-grid-column>
</kendo-grid>
</kendo-grid>
`
})
export class AppComponent {
private filter: string;
private sort: SortDescriptor[] = [];
private gridView: GridDataResult;
private products: any[] = [
{
"ProductID": 1,
"ProductName": "Chai",
"UnitPrice": 18.0000,
"Discontinued": false
},
{
"ProductID": 3,
"ProductName": "Chai",
"UnitPrice": 122.0000,
"Discontinued": true
}
,{
"ProductID": 2,
"ProductName": "Chang",
"UnitPrice": 19.0000,
"Discontinued": false
}];
constructor() {
this.loadProducts();
}
protected sortChange(sort: SortDescriptor[]): void {
this.sort = sort;
this.loadProducts();
}
public state:State={
logic: "and",
filters: [
{ field: "ProductID", operator: "contains", value:''},
{ field: "ProductName", operator: "contains", value:''},
{ field: "UnitPrice", operator: "contains", value:''}
]
}
public dataStateChange(State:DataStateChangeEvent):void{
this.state=State;
data: process(products, this.state),
}
private loadProducts(prods): void {
const products = prods || this.products;
this.gridData = {
data: process(products, this.state),
total: products.length
};
}