如果selectedItems为1或更小,我将如何删除此字符串中的最后一个字母。
<p translate translate-values="{value: selectedItems.length | removePlural}">
TEAMS_EDIT_SELECTED_PLURAL
</p>
值
TEAMS_EDIT_SELECTED_PLURAL: 'You have selected {{value}} items.',
过滤
myFilters.filter('removePlural', function($translate) {
if (selectedItems.length <= 1) {
} else {
}
});
答案 0 :(得分:2)
正如dskh在评论中所说,你应该考虑使用ngPluralize指令。
简单地截断字符串会很快导致问题,例如daisies
到daisy
不会遵循该模式。此外,如果您需要让您的应用程序使用多种语言,那么您真的会成为一条小溪。
<p ng-pluralize
count="selectedItems"
when="{'0': 'You have note selected any items.',
'one': 'You have selected one item.',
'other': 'You have selected {} items.'}">
</p>
您似乎正在使用ngTranslate module(即使您在问题中没有说过)。在这种情况下,使用翻译过滤器是没有意义的,您需要在控制器中使用translate service。
app.controller("MyController", function($translate) {
$scope.text = {
TEAMS_EDIT_SELECTED_PLURAL : $translate("TEAMS_EDIT_SELECTED_PLURAL"),
TEAMS_EDIT_SELECTED_SINGULAR : $translate("TEAMS_EDIT_SELECTED_SINGULAR"),
TEAMS_EDIT_SELECTED_NONE : $translate("TEAMS_EDIT_SELECTED_NONE")
}
});
在您看来,您可以执行以下操作
<p ng-pluralize
count="selectedItems"
when="{'0': text.TEAMS_EDIT_SELECTED_NONE,
'one': text.TEAMS_EDIT_SELECTED_SINGULAR,
'other': text.TEAMS_EDIT_SELECTED_PLURAL }">
</p>