我正在尝试使用过滤器返回的值对数组进行排序。调试时,我发现过滤器不返回字符串而是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
(因此此处没有异步操作)。
我在做什么错了?
谢谢