如何过滤 ng-repeat 中的翻译值
How to filter translated value in ng-repeat
我有 objects 数组,其中包含两个属性(标题、参数)。当我应用以下过滤器时,将搜索所有值以进行匹配。
问题是 type.title 值未翻译,我需要过滤掉翻译标题 属性 与 $select.search
值匹配的数组项
<ui-select-choices repeat="type in codeLists.reportTypes | filter: $select.search">
您有两种选择:
1) Pre-translate 所有标题
$scope.cldeLists.reportTypes.forEach(function(item) {
item.translatedTitle = $filter("translate")("docKey." + item.title);
});
然后你就可以在你的过滤器中使用它了:
<ui-select-choices repeat="type in codeLists.reportTypes | filter: { translatedTitle: $select.search }">
2) 创建一个搜索翻译项目的自定义过滤器:
app.filter("translatedPropertyFilter", function($filter) {
return function(item, property, searchString, prefix) {
if (!prefix) prefix = "";
return $filter("translate")(prefix + item[property]).indexOf(searchString) > -1;
}
});
用法:
<ui-select-choices repeat="type in codeLists.reportTypes | translatedPropertyFilter:'title':$select.search:'docKey.'">
我有 objects 数组,其中包含两个属性(标题、参数)。当我应用以下过滤器时,将搜索所有值以进行匹配。
问题是 type.title 值未翻译,我需要过滤掉翻译标题 属性 与 $select.search
值匹配的数组项
<ui-select-choices repeat="type in codeLists.reportTypes | filter: $select.search">
您有两种选择:
1) Pre-translate 所有标题
$scope.cldeLists.reportTypes.forEach(function(item) {
item.translatedTitle = $filter("translate")("docKey." + item.title);
});
然后你就可以在你的过滤器中使用它了:
<ui-select-choices repeat="type in codeLists.reportTypes | filter: { translatedTitle: $select.search }">
2) 创建一个搜索翻译项目的自定义过滤器:
app.filter("translatedPropertyFilter", function($filter) {
return function(item, property, searchString, prefix) {
if (!prefix) prefix = "";
return $filter("translate")(prefix + item[property]).indexOf(searchString) > -1;
}
});
用法:
<ui-select-choices repeat="type in codeLists.reportTypes | translatedPropertyFilter:'title':$select.search:'docKey.'">