ng重复订单失败并带有重音

时间:2014-06-05 10:29:09

标签: javascript angularjs

我有一些带有一些重音的字符串列表。但orderBy过滤器似乎无法正常使用它们,因为您可以看到in this JSFiddle

如何改善排序?我是否需要在orderBy中添加选项?

1 个答案:

答案 0 :(得分:0)

您可以使用String.localeCompare()方法比较两个字符串。然后很容易创建自己的过滤器来对数组进行排序:

MyApp.filter('myOrderBy', function () {
    return function (array, property, reverse) {
        var result = array.sort(function (object1, object2) {
            if (angular.isUndefined(property)) {
                return object1.localeCompare(object2);
            }

            return object1[property].localeCompare(object2[property]);
        });

        return reverse ? result.reverse() : result;
    };
});

JSFiddle