Spec-Zone.ru › Angular.js 1.5

Улучшить эту документацию Просмотреть исходный код ngPluralize

  1. директива в модуле ng

ngPluralize — это директива, которая отображает сообщения в соответствии с правилами локализации en-US. Эти правила включены в angular.js, но могут быть переопределены (см. руководство по локализации Angular Angular i18n). Вы настраиваете директиву ngPluralize, указав соответствие между категориями множественного числа и отображаемыми строками.

Категории множественного числа и явные правила для чисел

В стандартной локализации en-US Angular использует две категории множественного числа: "one" и "other".

Хотя категория множественного числа может соответствовать многим числам (например, в локали en-US "other" может соответствовать любому числу, не равном 1), явное правило для числа может соответствовать только одному числу. Например, явное правило для числа "3" соответствует числу 3. Примеры категорий множественного числа и явных правил для чисел приведены в дальнейшем в данной документации.

Настройка ngPluralize

Вы настраиваете ngPluralize, указав 2 атрибута: count и when. Вы также можете указать необязательный атрибут offset.

Значение атрибута count может быть строкой или выражением Angular; эти выражения вычисляются в текущем контексте для связанного значения.

Атрибут when определяет соответствие между категориями множественного числа и отображаемыми строками. Значение атрибута должно быть объектом JSON.

Следующий пример демонстрирует настройку ngPluralize:

<ng-pluralize count="personCount"
                 when="{'0': 'Nobody is viewing.',
                     'one': '1 person is viewing.',
                     'other': '{} people are viewing.'}">
</ng-pluralize>

В примере "0: Nobody is viewing." — это явное правило для числа. Если вы не укажете это правило, 0 будет соответствовать категории "other", и вместо "Nobody is viewing" будет показано "0 people are viewing". Вы можете указать явное правило для других чисел, например, 12, чтобы вместо "12 people are viewing" отображалось "a dozen people are viewing".

Вы можете использовать набор закрытых фигурных скобок ({}) в качестве заполнитель для числа, которое должно быть подставлено в строку множественного числа. В предыдущем примере Angular заменит {} на {{personCount}}. Закрытые фигурные скобки {} — это заполнители для {{numberExpression}}.

Если правило для категории не определено, то отображается пустая строка, и генерируется предупреждение. Обратите внимание, что некоторые локали определяют больше категорий, чем one и other. Например, fr-fr определяет few и many.

Настройка ngPluralize с отступом

Атрибут offset позволяет дополнительно настроить текст множественного числа, что может улучшить пользовательский опыт. Например, вместо сообщения "4 people are viewing this document" можно отобразить "John, Kate and 2 others are viewing this document". Атрибут offset позволяет сместить число на любое желаемое значение. Посмотрим на пример:

<ng-pluralize count="personCount" offset=2
              when="{'0': 'Nobody is viewing.',
                     '1': '{{person1}} is viewing.',
                     '2': '{{person1}} and {{person2}} are viewing.',
                     'one': '{{person1}}, {{person2}} and one other person are viewing.',
                     'other': '{{person1}}, {{person2}} and {} other people are viewing.'}">
</ng-pluralize>

Обратите внимание, что мы по-прежнему используем две категории множественного числа (one, other), но добавили три явных правила для чисел 0, 1 и 2. Когда один человек, например, John, просматривает документ, отображается "John is viewing". Когда три человека просматривают документ, явное правило не найдено, поэтому от 3 вычитается отступ 2, и Angular использует 1 для определения категории множественного числа. В этом случае соответствует категория множественного числа 'one', и отображается "John, Mary and one other person are viewing".

Обратите внимание, что при указании отступов необходимо предоставить явные правила для чисел от 0 до и включая отступ. Если вы используете отступ 3, например, вы должны предоставить явные правила для 0, 1, 2 и 3. Вы также должны указать строки множественного числа для категорий множественного числа "one" и "other".

Справочная информация о директиве

  • Эта директива выполняется на уровне приоритета 0.

Использование

  • как элемент: (Эта директива может использоваться как пользовательский элемент, но учитывайте ограничения в IE).
    <ng-pluralize
      count=""
      when="string"
      [offset="number"]>
    ...
    </ng-pluralize>
  • как атрибут:
    <ANY
      count=""
      when="string"
      [offset="number"]>
    ...
    </ANY>

Аргументы

Параметр Тип Подробности
count stringexpression

Переменная, к которой будет привязано значение.

when string

Сопоставление между категорией множественного числа и соответствующими строками.

offset
(необязательно)
number

Отступ, который вычитается из общего числа.

© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.5.11/docs/api/ng/directive/ngPluralize

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API