documentation для KendoUI для Angular2 упоминает, что метод toODataString преобразует предоставленный объект состояния в строку, совместимую с oData v4.
Структура указанного объекта состояния определена here.
Я установил сетку KendoUI для Angular2 с привязкой к данным и серверной страничной страницей, как описано here, которая работает нормально.
Так что теперь я хочу, чтобы добавить объект фильтра к этому состоянию, и я использую следующий код, чтобы сделать это:
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 и возвращает следующие строки запроса (обратите внимание на двойную амперсанд, как будто он пытался вставить что-то, что оцененную в нуль):
$ = 0 пропустить & $ топ = 15 & & $ кол = верно
Вот скриншот отладчика, показывающий структуру экземпляра filterDescriptor, переданного методу toODataString. Пожалуйста, сообщите, что я делаю неправильно здесь?