javascript - 如何在 Angular 翻译中传递参数

标签 javascript angularjs

我创建了一个函数来执行一些错误检查并将在不同的输入字段中使用。我的功能代码如下:

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 个字符,则会出现错误:用户名必须至少包含 5 个字符

我想做的事情可能吗?

最佳答案

最好在 Controller 内部进行翻译,除非您想将 elementminlength 传递给模板。

首先,您需要将 $translate 注入(inject)您的 Controller 。然后生成您的消息:

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

此方法也概述 here .

要在模板中执行此操作(概述 here ):

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

关于javascript - 如何在 Angular 翻译中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33958340/

相关文章:

javascript - Angularjs bootstrap 弹出窗口在模型更改后闪烁

javascript - AngularJs 和 Angular-UI-Router 路由权限

angularjs - 如何向组件添加 ng-model 功能

javascript - 单击时防止在特定条件下打开 md-select 下拉菜单

javascript - 如何使 ajax 内容被谷歌索引?

javascript - Angular JS 级联通知

javascript - svg.js bbox() 在scale() 之后返回相同的值

javascript - nodejs和web浏览器中的单线程是否相同?

javascript - 为什么 vuexfire 不更新状态但正确更新 ui?

javascript - WebGL2 texelFetch'ing 纹理意外结果