Sapui5 Openui5:sap.ui.model.Sorter的排序顺序错误
sap.ui.model.Sorter似乎未正确排序ISO-8859-1字符 下面是一个示例,其中我们创建了一个列表,列表中有一个项目pr字符。其输出顺序不正确,而是“AÅBCDEFGHIJKLMNOØPQRSTUVWXYZ” 预期结果的顺序与声明alfabet变量时的顺序相同:“ABCDEFGHIJKLMOPQRSTUVWXYZÆØ” 我们怎样才能正确地对模型进行排序 JSBIN:Sapui5 Openui5:sap.ui.model.Sorter的排序顺序错误,sapui5,Sapui5,sap.ui.model.Sorter似乎未正确排序ISO-8859-1字符 下面是一个示例,其中我们创建了一个列表,列表中有一个项目pr字符。其输出顺序不正确,而是“AÅBCDEFGHIJKLMNOØPQRSTUVWXYZ” 预期结果的顺序与声明alfabet变量时的顺序相同:“ABCDEFGHIJKLMOPQRSTUVWXYZÆØ” 我们怎样才能正确地对模型进行排序 JSBIN: var alfabet=“ABCDEFGHIJKLMOPQRSTUVWXYZ” var数据=[]; 对于(变量i
var alfabet=“ABCDEFGHIJKLMOPQRSTUVWXYZ”
var数据=[];
对于(变量i=0;i
根据问题注释的输入,直接覆盖排序函数fnCompare以获得正确的顺序
var oSorter = new sap.ui.model.Sorter("value", null, null);
oSorter.fnCompare = function (a, b) {
if (a == b) {
return 0;
}
if (b == null) {
return -1;
}
if (a == null) {
return 1;
}
if (typeof a == "string" && typeof b == "string") {
return a.localeCompare(b, "nb");
}
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
var-oSorter=new sap.ui.model.Sorter(“value”,null,null);
oSorter.fnCompare=函数(a,b){
如果(a==b){
返回0;
}
如果(b==null){
返回-1;
}
如果(a==null){
返回1;
}
如果(a的类型==“字符串”&&b的类型==“字符串”){
返回a.localeCompare(b,“nb”);
}
if(ab){
返回1;
}
返回0;
}
这里“nb”是排序使用的区域设置根据问题注释的输入,直接覆盖排序函数fnCompare以获得正确的顺序
var oSorter = new sap.ui.model.Sorter("value", null, null);
oSorter.fnCompare = function (a, b) {
if (a == b) {
return 0;
}
if (b == null) {
return -1;
}
if (a == null) {
return 1;
}
if (typeof a == "string" && typeof b == "string") {
return a.localeCompare(b, "nb");
}
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
var-oSorter=new sap.ui.model.Sorter(“value”,null,null);
oSorter.fnCompare=函数(a,b){
如果(a==b){
返回0;
}
如果(b==null){
返回-1;
}
如果(a==null){
返回1;
}
如果(a的类型==“字符串”&&b的类型==“字符串”){
返回a.localeCompare(b,“nb”);
}
if(ab){
返回1;
}
返回0;
}
这里“nb”是进行排序的区域设置那么,正确的顺序是什么?初始字符串中的那个?OpenUI5使用JavaScript内置的“localeCompare”字符串函数:(但不提供区域设置)。但是,在执行“Æ”时,给出区域设置似乎没有什么区别。localeCompare(“Z”,“no”)…@akudev是的,正确的顺序应该是初始alfabet字符串中的顺序。让我直接检查一下localeCompare,如果您认为这是一个值得修复的bug,请将其发布在OpenUI5的github页面:@Niklas就可以了。此stackoverflow线程将用于实现workaround@akudev挪威的语言环境是nb。通过使用它,localeCompare返回正确的值“å”。localeCompare('z','nb');1“å”。localeCompare('z','en')-1那么,正确的顺序是什么?初始字符串中的那个?OpenUI5使用JavaScript内置的“localeCompare”字符串函数:(但不提供区域设置)。但是,在执行“Æ”时,给出区域设置似乎没有什么区别。localeCompare(“Z”,“no”)…@akudev是的,正确的顺序应该是初始alfabet字符串中的顺序。让我直接检查一下localeCompare,如果您认为这是一个值得修复的bug,请将其发布在OpenUI5的github页面:@Niklas就可以了。此stackoverflow线程将用于实现workaround@akudev挪威的语言环境是nb。通过使用它,localeCompare返回正确的值“å”。localeCompare('z','nb');1“å”。localeCompare('z','en')-1.