В документации для KendoUI для Angular2 упоминается, что Метод toODataString преобразует предоставленный объект состояния в строку, совместимую с oData v4.
Структура указанного объекта состояния определяется здесь .
Я настроил сетку KendoUI для Angular2 с привязкой данных и пейджингом на стороне сервера, как описано здесь, который работает нормально.
Итак, теперь я хочу добавить объект фильтра в это состояние, и я использую для этого следующий код:
private filter: CompositeFilterDescriptor;
public applyFilters(): void {
this.filter = {
logic: "and",
filters: []
};
this.skip = 0;
this.sort = [];
if (this.customerNameFilter) {
let fd: FilterDescriptor = {
field: "name",
operator: "contains",
value: this.customerNameFilter,
ignoreCase: true
}
this.filter.filters.push(fd);
}
this.service.query({ skip: this.skip, take: this.pageSize, filter: this.filter });
}
Затем метод service.query вызывает метод toODataString и возвращает следующую строку запроса (обратите внимание на двойной амперсанд, как если бы он пытался вставить что-то, что оценивается как null):
$skip=0&$top=15&&$count=true
Вот снимок экрана отладчика, показывающий структуру экземпляра filterDescriptor, переданного в метод toODataString. Посоветуйте, пожалуйста, что я здесь делаю не так?