在Array.prototype.sort中使用AngularJS过滤器不起作用

时间:2018-07-03 09:53:06

标签: angularjs angularjs-filter angularjs-orderby

我正在尝试使用过滤器返回的值对数组进行排序。调试时,我发现过滤器不返回字符串而是TrustedValueHolderType ...,因此排序不起作用。

如果我使用本地orderByFilter而不是Array.prototype.sort,则会得到相同的行为。

function orderFamilies(families) {
            var ordered = families.sort(function(f1, f2) {
                // f1, f2 are strings
                // translateFamilyFilter is stateless
                var f1Translated = translateFamilyFilter(f1);
                // var f1Translated = translateFamilyFilter(f1).toString() works but I'm not sure if it's viable
                var f2Translated = translateFamilyFilter(f2);
                return f1Translated - f2Translated;
            });
            return ordered;
}

families = [ 'Security', 'Environment', 'Professional'];

translateFamily是一个自定义过滤器,它将转换其翻译密钥中的姓氏,然后使用$translate.instant(因此此处没有异步操作)。

我在做什么错了?

谢谢

0 个答案:

没有答案