全局 Angular-formly 验证

Global Angular-formly validations

我在我的应用程序的一堆不同的 HTML 页面中使用 angular formly-forms。我以验证为例:

                    {
                       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"'
                            },
                        },

我希望在我的其他 HTML 表单上也可以使用此验证,而不必重复验证器函数。我读过我可以创建一个自定义用户名类型,它可能内置了这个验证器逻辑和消息?我只是再次不确定如何使它全球化。

在我的 app.config.js 中,我确实有一些全局消息可以用来显示基本 angular-formly 错误的错误消息,但不确定如何为我的自定义错误显示错误消息

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

我找不到成功完成此操作的好例子,非常希望能提供一些帮助!

对于将来寻找如何执行此操作的任何人。看看这个视频中的例子。 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"'
>           },
>       },
>     }