当 table 列包含空值或空值时,在 ng-bootstrap table 中排序不一致 (Angular 8)
Sorting works inconsistently in ng-bootstrap table, when table column contains null or empty values (Angular 8)
我正在关注官方 ng bootstrap 网站以实现此功能。 - Url
但是只要列中有空值或空值,排序就不会按预期进行,当您在任何列中使用 "Sort Ascending" 或 "Sort Descending" 操作时会发生这种情况。
而且我认为我们需要在其实施中修复这部分的错误。请告诉我如何调整这个
const compare = (v1: string, v2: string) => v1 < v2 ? -1 : v1 > v2 ? 1 : 0;
我确实以这种方式进行了调整,但它没有按预期工作。
v1 = v1 == '' ? ' ' : v1;
v2 = v2 == '' ? ' ' : v2;
if (v1 === v2) { return 0 };
if (v1 < v2) { return -1 };
if (v1 > v2) { return 1 };
如果你们中的任何人感兴趣,这里就是这个问题的解决方案。
function compare(v1, v2) {
if(v1 < v2 || !v1) {
return -1;
}
if(v1 > v2 || !v2) {
return 1;
}
return 0;
}
这就是 javascript 的工作原理,与 ng-bootstrap 无关。
开发人员需要决定如何对空值进行排序(将它们放在集合的开头或结尾)并提供尊重的比较逻辑。
我正在关注官方 ng bootstrap 网站以实现此功能。 - Url
但是只要列中有空值或空值,排序就不会按预期进行,当您在任何列中使用 "Sort Ascending" 或 "Sort Descending" 操作时会发生这种情况。
而且我认为我们需要在其实施中修复这部分的错误。请告诉我如何调整这个
const compare = (v1: string, v2: string) => v1 < v2 ? -1 : v1 > v2 ? 1 : 0;
我确实以这种方式进行了调整,但它没有按预期工作。
v1 = v1 == '' ? ' ' : v1;
v2 = v2 == '' ? ' ' : v2;
if (v1 === v2) { return 0 };
if (v1 < v2) { return -1 };
if (v1 > v2) { return 1 };
如果你们中的任何人感兴趣,这里就是这个问题的解决方案。
function compare(v1, v2) {
if(v1 < v2 || !v1) {
return -1;
}
if(v1 > v2 || !v2) {
return 1;
}
return 0;
}
这就是 javascript 的工作原理,与 ng-bootstrap 无关。 开发人员需要决定如何对空值进行排序(将它们放在集合的开头或结尾)并提供尊重的比较逻辑。