首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对全局验证消息使用angular-formly

对全局验证消息使用angular-formly
EN

Stack Overflow用户
提问于 2016-08-16 22:21:49
回答 2查看 451关注 0票数 0

验证消息可以像此处的http://docs.angular-formly.com/v5.2.1/docs/formlyvalidationmessages那样进行全局配置

我喜欢使用翻译筛选器,以便将书面验证错误翻译为配置的语言。有人知道如何做到这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2016-10-27 17:56:11

假设您使用类似以下内容来设置验证消息:

代码语言:javascript
复制
var field = {
  type: 'whatever',
  templateOptions: {
    pattern: /some_crazyPattern/,
    patternValidationMessage: '"Needs to match " + options.templateOptions.pattern'
  }
};

通过使用angular translate,在js代码中可以使用$translate来实现以下功能:

代码语言:javascript
复制
$translate('some.message').then(function(response) {
  var field = {
    type: 'whatever',
    templateOptions: {
      pattern: /some_crazyPattern/,
      patternValidationMessage: response.some.message + 'options.templateOptions.pattern'
    }
  };
});

这有帮助吗?

票数 0
EN

Stack Overflow用户

发布于 2016-11-08 19:59:04

如果使用验证器定义字段,则可以使用:

代码语言:javascript
复制
validators: {
  validUntilDateAfterValidFromDate: {
    expression: (viewValue, modelValue) =>  this.validateValidUntilDate(modelValue),
    message: '"some.translate.code" | translate'
  }
}

如果你想使用更通用的方法,将formlyValidationMessages添加到你的正式配置中,你可以向你的正式配置提供程序中添加一个包装器:

代码语言:javascript
复制
formlyConfigProvider.setWrapper({
  name: "field-message",
  templateUrl: "/app/formly/wrappers/field-message.html"
});

使用field-message.html:

代码语言:javascript
复制
<formly-transclude></formly-transclude>
<div class="messages" ng-messages="fc.$error" ng-if="fc.$touched">
  <div class="alert alert-danger"
     ng-message="{{::name}}"
     ng-repeat="(name, message) in ::options.validation.messages"
     translate>
    {{message(fc.$viewValue, fc.$modelValue, this)}}
  </div>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38977451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档