尝试对findAll进行排序时遇到错误:
"Sort key dateis not one of the valid strings."
我的选项如下(我为desc尝试了不同的格式,每个人都投了同样的错误'错误'):
var options = {sort: [{"date": "desc"}]};
一切似乎都很好,JSONStore按预期工作,对返回的数据进行排序,我只是想确定错误'确实是worklight.js部分的错误或错误,而不是我做错了。
这是在worklight.js中检查有效sortObj的函数:
/** Checks if sortObj is a valid sort object for a query
* @private
*/
var __isValidSortObject = function(sortObj, searchFields, additionalSearchFields) {
var propertiesValidated = 0,
sortObjKey, sortStr;
for (sortObjKey in sortObj) {
if (sortObj.hasOwnProperty(sortObjKey)) {
if (propertiesValidated > 0) {
WL.Logger.trace('Sort object ' + JSON.stringify(sortObj) + ' has more than one property. Each object must have only one property.');
return false;
}
//check is sortObjKey is lowerCase
if (_.isUndefined(searchFields[sortObjKey.toLowerCase()]) && _.isUndefined(additionalSearchFields[sortObjKey.toLowerCase()])) {
WL.Logger.trace('Sort key ' + sortObjKey + ' is not part of search fields: ' + JSON.stringify(searchFields) + ' or additional search fields: ' + JSON.stringify(additionalSearchFields));
return false;
}
sortStr = sortObj[sortObjKey];
//Check that the string that specifies sorting order says either "asc" or "desc"
**if (__isString(sortStr) && sortStr.length > 0 && (/^(a|de)sc$/i.test(sortStr))) {
WL.Logger.trace('Sort key ' + sortObjKey + 'is not one of the valid strings.');
propertiesValidated++;
} else {
// Here seems to be the problem, shouldn't the trace be before return false?
return false;
}**
}
}
if (propertiesValidated === 0) {
return false;
}
return true;
};
你可以清楚地看到,当检查没问题时,他们会执行WL.Logger.trace,并且应该在返回false之前。
是否有人在JSONStore上使用过排序也会收到此跟踪?。
平台版本:7.1.0.00.20160129-1923
答案 0 :(得分:0)
我联系了IBM支持人员,他们确实确认这是一个将在下一个版本中解决的错误。