Как передать параметры в angular -трансляте

Я создал функцию, которая выполняет некоторые проверки ошибок и будет использоваться в разных полях ввода. Мой код функции ниже:

errorChecks = (element, minlength) => {
   if (element.$dirty) {
      if (element.$error.required == true) {
         this.errorMessage = "REQUIRED";
         return;
      } else if (element.$viewValue.length < minlength) {
          this.errorMessage = "MINLENGTH" // MINLENGTH error with parameters here
          return;
      } else {
          this.errorMessage = null;
          return;
      } 
   }
}

Я использую преобразование angularjs для сообщений об ошибках.

"MINLENGTH": "{{ element }} must be at least {{ value }} characters",

Я хотел динамически изменить свое сообщение об ошибке, передав параметр таким образом:

errorChecks(username, 5);

Если я введу 1 символ в поле имени пользователя, ошибка скажет: username must be at least 5 characters.

Я пытаюсь сделать то, что я пытаюсь сделать?

Ответ 1

Вероятно, вам лучше всего перевести внутри контроллера на этот, если вы не хотите передавать element и minlength в шаблон.

Во-первых, вам нужно ввести $translate в ваш контроллер. Затем для генерации вашего сообщения:

this.errorMessage = $translate('MINLENGTH', { element: element, value: minlength });

Этот метод также описан здесь.

Чтобы сделать это в шаблоне (обрисовано здесь):

{{ MINLENGTH | translate : '{ element: element, value: minlength }' }}

Ответ 2

Вы также можете сделать это в шаблоне следующим образом.

<span data-translate="MINLENGTH" data-translate-values="{ element: element, value: minlength }"></span>

Ответ 3

Вы также можете использовать $translate.instant('MINLENGTH', { element: element, value: minlength })

Ответ 4

Для всех, кто интересуется синтаксисом, для использования методов извлечения входных данных для перевода это сработало для меня:

   {{ MINLENGTH | translate : { x: table.getShownCount(), y: table.getTotalCount() } }}