Dynamic Parameter Validator in Freedom UI

Hi Community.

Here example validator client side in Documentary

/* Declare the AMD module. */

define("UsrAppValidators_FormPage", /**SCHEMA_DEPS*/[]/**SCHEMA_DEPS*/, function/**SCHEMA_ARGS*/()/**SCHEMA_ARGS*/ {

    return {

        viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[

            {

                "operation": "insert",

                "name": "UsrName",

                "values": {

                    "layoutConfig": {

                        "column": 1,

                        "row": 1,

                        "colSpan": 1,

                        "rowSpan": 1

                    },

                    "type": "crt.Input",

                    "label": "$Resources.Strings.UsrName",

                    "control": "$UsrName"

                },

                "parentName": "LeftAreaProfileContainer",

                "propertyName": "items"

            }

        ]/**SCHEMA_VIEW_CONFIG_DIFF*/,

        viewModelConfigDiff: /**SCHEMA_VIEW_MODEL_CONFIG*/{

            "attributes": {

                "UsrName": {

                    "modelConfigDiff": {

                        "path": "PDS.UsrName"

                    },

                    "validators": {

                        /* Bind the custom validator to the attribute. */

                        "MyValidator": {

                            "type": "usr.MyValidator",

                            "params": {

                                "invalidName": "test",

                                "message": "Invalid name"

                            }

                        }

                    }

                },

                "Id": {

                    "modelConfigDiff": {

                        "path": "PDS.Id"

                    }

                }

            }

        }/**SCHEMA_VIEW_MODEL_CONFIG*/,

        modelConfigDiff: /**SCHEMA_MODEL_CONFIG*/{

            "dataSources": {

                "PDS": {

                    "type": "crt.EntityDataSource",

                    "config": {

                        "entitySchemaName": "UsrAppValidators"

                    }

                }

            }

        }/**SCHEMA_MODEL_CONFIG*/,

        handlers: /**SCHEMA_HANDLERS*/[]/**SCHEMA_HANDLERS*/,

        converters: /**SCHEMA_CONVERTERS*/{}/**SCHEMA_CONVERTERS*/,

        validators: /**SCHEMA_VALIDATORS*/{

            /* The validator type must contain a vendor prefix.

            Format the validator type in PascalCase. */

            "usr.MyValidator": {

                "validator": function (config) {

                    return function (control) {

                        return control.value !== config.invalidName ? null: {

                            "usr.MyValidator": { message: config.message }

                        };

                    };

                },

                "params": [

                    {

                        "name": "invalidName"

                    },

                    {

                        "name": "message"

                    }

                ],

                "async": false

            }

        }/**SCHEMA_VALIDATORS*/

    };

});



is it possible to give argument of validator (invalidName) dynamic from other field value instead static like "invalidName": "test"? or can field value (other than control) accessed inside validator method?

Like 0

Like

2 comments

As far as I know, this is not possible at the moment to get a value of other attributes in a validator.

Alex Zaslavsky,

Thanks for your answer, really appreciate it.

Show all comments