全局角度验证

时间:2016-06-17 00:56:06

标签: angularjs validation angular-formly

我在我的App上的一堆不同的HTML页面中使用了角度形式表单。我使用验证作为例子:

                    {
                       className: 'col-xs-5',
                        key: 'poc',
                        type: 'input',
                        templateOptions: {
                            type: 'text',
                            required: true,
                            label: 'Point of Contact',
                            maxlength: 15,
                            placeholder: "Enter Point of Contact's username"
                        },
                        validators:{
                            username:{
                              expression: function(viewValue, modelValue) {
                                var value = modelValue || viewValue;
                                return !value || /^\d*[a-zA-Z][a-zA-Z\d]*$/.test(value);
                              },
                              message: '$viewValue + " is not a valid username"'
                            },
                        },

Example of Output 我想在我的其他HTML表单上提供此验证,而不必重复验证器功能。我已经读过,我可以创建一个自定义用户名类型,可能有这个验证器逻辑&邮件内置?我再次不确定如何使这个全球化。

在我的app.config.js中,我确实有一些全局消息可以显示基本角度形式错误的错误消息,但不知道如何让它为我的自定义错误做到这一点

  formlyValidationMessages.addStringMessage('required', 'This field is required');
  formlyValidationMessages.addStringMessage('maxlength', 'Input is too long!');

我找不到一个成功做到这一点的人的好例子,并会极大地帮助你!

1 个答案:

答案 0 :(得分:2)

对于那些希望将来如何做到这一点的人。请看一下此视频中的示例。 https://egghead.io/lessons/angularjs-angular-formly-default-options

就我如何概述的例子而言。

> angular.module('cim').run(function(formlyConfig,
> formlyValidationMessages) {   formlyConfig.setType({
>     name: 'username',
>     defaultOptions: {
>       templateOptions: {
>           type: 'text',
>           required: true,
>           label: 'Point of Contact',
>           maxlength: 15,
>           placeholder: "Enter Point of Contact's username",
>       },
>       validators:{
>           username:{
>             expression: function(viewValue, modelValue) {
>               var value = modelValue || viewValue;
>               return !value || /^\d*[a-zA-Z][a-zA-Z\d]*$/.test(value);
>             },
>             message: '$viewValue + " is not a valid username"'
>           },
>       },
>     }