- Я использую выбор углового материала с несколькими вариантами.
- Каждый раз, когда опция выбрана или не выбрана, я вызываю опцию, чтобы отфильтровать данные в таблице и показать только те строки, которые выбраны.
Это коддля выбора циновки.
<mat-form-field>
<mat-select placeholder="RequestID" id = "filter-check-box" multiple>
<mat-option (onSelectionChange) = "RequestIDCheckboxFilter($event, RequestID)"
*ngFor="let RequestID of RequestIDArray" [value]="RequestID">{{RequestID}}</mat-option>
</mat-select>
- Это определение RequestIDArray:
RequestIDArray: string[] = ['REQ001', 'REQ002', 'REQ003', 'REQ004'];
И это определениеФункция RequestIDCheckboxFilter.ReqIDFilter - это массив, в котором я храню значения, которые проверены в настоящее время.:
RequestIDCheckboxFilter(event, text: string) {
var CheckboxFilterComponent = this.gridApi.getFilterInstance("requestID");
if(event.isUserInput) {
var index = this.ReqIDFilter.indexOf(text);
if(index == -1) {
this.ReqIDFilter.push(text);
}
else {
this.ReqIDFilter.splice(index, 1);
}
}
for(var i = 0; i < this.ReqIDFilter.length; i++) {
CheckboxFilterComponent.setModel({
type: "equals",
filter: this.ReqIDFilter[i]
})
}
this.gridApi.onFilterChanged();
}
Когда я это делаю, я вижу только одну из строк, даже если выбрано несколько опций.Скажем, если выбраны REQ001 и REQ002, видна только строка с REQ001.Я также пытался использовать цикл for внутри setModel, но это дает ошибку.Можно ли как-нибудь отфильтровать таблицу по всем значениям в массиве?
Редактировать: я использую версию ag-grid для сообщества.