1
, 나는에게 빈 문자열 응답을받을 수 있습니다.각도 2 검도 toOdataString 반환 빈 문자열
kendo가 올바른 형식의 odata 문자열을 반환하도록 제안하는 내용이 있습니까?
, 나는에게 빈 문자열 응답을받을 수 있습니다.각도 2 검도 toOdataString 반환 빈 문자열
kendo가 올바른 형식의 odata 문자열을 반환하도록 제안하는 내용이 있습니까?
이전 kendo 자바 스크립트 핵심 코드가 올바르게 처리되어 있으므로 typescript로 변환 된 것으로 보입니다.
toODataFilter(filter) {
var result = [],
logic = filter.logic || "and",
idx,
length,
field,
type,
format,
operator,
value,
ignoreCase,
filters = filter.filters;
for (idx = 0, length = filters.length; idx < length; idx++) {
filter = filters[idx];
field = filter.field;
value = filter.value;
operator = filter.operator;
if (filter.filters) {
filter = this.toODataFilter(filter);
} else {
ignoreCase = filter.ignoreCase;
field = field.replace(/\./g, "/");
filter = this.odataFilters[operator];
if (operator === "isnull" || operator === "isnotnull") {
filter = this.String.format("{0} {1} null", field, filter);
} else if (operator === "isempty" || operator === "isnotempty") {
filter = this.String.format("{0} {1} ''", field, filter);
} else if (filter && value !== undefined) {
type = typeof value;
if (type === "string") {
format = "'{1}'";
value = value.replace(/'/g, "''");
if (ignoreCase === true) {
field = "tolower(" + field + ")";
}
} else if (type === "date") {
format = "{1:yyyy-MM-ddTHH:mm:ss+00:00}";
// TODO **** Time zone
//value = kendo.timezone.apply(value, 'Etc/UTC');
} else {
format = "{1}";
}
if (filter.length > 3) {
if (filter !== "substringof") {
format = "{0}({2}," + format + ")";
} else {
format = "{0}(" + format + ",{2})";
if (operator === "doesnotcontain") {
format = "{0}({2},'{1}') eq -1";
filter = "indexof";
}
}
} else {
format = "{2} {0} " + format;
}
filter = this.String.format(format, filter, value, field);
}
}
result.push(filter);
}
filter = result.join(" " + logic + " ");
if (result.length > 1) {
filter = "(" + filter + ")";
}
return filter;
} 생성자 그 코드는 나를 위해 잘 작동 할 것으로 보인다
this.String.format = function (format) {
var args = Array.prototype.slice.call(arguments, 1);
return format.replace(/{(\d+)}/g, function (match, number) {
return typeof args[number] != 'undefined'
? args[number]
: match
;
});
};
에 넣고
객체
odataFilters = {
eq: "eq",
neq: "ne",
gt: "gt",
gte: "ge",
lt: "lt",
lte: "le",
contains: "contains",
doesnotcontain: "substringof",
endswith: "endswith",
startswith: "startswith",
isnull: "eq",
isnotnull: "ne",
isempty: "eq",
isnotempty: "ne"};
String: any = {};
. 필자가 필요로하지 않은 날짜 사례가 하나 있기 때문에 주석을 달았습니다.