Spec-Zone.ru › Angular.js 1.2

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

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

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

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

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

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

Настройка ngPluralize

Вы настраиваете ngPluralize, предоставив два атрибута: 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}}.

Настройка 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 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=""
      [offset=""]>
    ...
    </ng-pluralize>
  • как атрибут:
    <ANY
      count=""
      when=""
      [offset=""]>
    ...
    </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.2.32/docs/api/ng/directive/ngPluralize

Spec-Zone.ru

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