我正在使用https://angular-translate.github.io/实现i18n,我也使用ui-select。
当我选择[" FOO"," BAR"]时,我想翻译这些值,我可以:
<ui-select ng-model="myModel">
<ui-select-match>
<span ng-bind="$select.selected | translate"></span>
</ui-select-match>
<ui-select-choices repeat="item in (myList | filter: $select.search)">
<span ng-bind="item | translate"></span>
</ui-select-choices>
</ui-select>
问题是当我想要过滤值时。让我们说我翻译FOO到BANANA和BAR到ORANGE。
如果我输入&#34; BA&#34;,&#34; ORANGE&#34;出现是因为它过滤了[&#34; FOO&#34;,&#34; BAR&#34;],而不是[&#34; BANANA&#34;,&#34; ORANGE&#34;]。
另外,我无法更改列表,因为我想在我的模型上安装FOO和BAR。
如何在搜索值之前过滤 myList 的值进行翻译?
答案 0 :(得分:1)
编写自定义过滤器可以让您链接过滤器以获得所需的过滤列表:
.filter('myLangFilter', function(translationDict){
return function(input){
return input.map(function(cur) { return translationDict[cur]?translationDict[cur]:cur; })
}
})
然后在自定义过滤器中链接可以执行以下操作:
item in (myList | myLangFilter | filter: $select.search)