Skip to content

wieldo/angular-formly-transformer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Kamil Kisiela
Jan 18, 2016
46d9b61 · Jan 18, 2016

History

76 Commits
Jan 18, 2016
Jan 18, 2016
Jan 18, 2016
Jan 18, 2016
Jan 18, 2016
Nov 14, 2015
Nov 20, 2015
Nov 20, 2015
Nov 20, 2015
Nov 20, 2015
Jan 18, 2016
Jan 18, 2016
Nov 20, 2015
Nov 12, 2015
Jan 18, 2016
Jan 18, 2016
Jan 18, 2016
Jan 18, 2016
Jan 18, 2016
Jan 18, 2016

Repository files navigation

FormlyTransformer

GitHub version Build Status Coverage Status Codacy Badge Coverage Status

Better way of field transformation in Angular-Formly.

Install

meteor

meteor add wieldo:angular-formly-transformer

npm

npm install angular-formly-transformer

bower

bower install angular-formly-transformer

Getting Started

angular.module('myApp', [
    'formly',
    'formlyTransformer'
  ])

formlyTransformer service

see formlyTransformer API

How to use it

Register transformer

Each transformer has four arguments: fields, model, formOptions, and form.

See fieldTransform in formlyConfig for details.

Transformer is basically the same as fieldTransform method. formlyTransform service just wraps all functions into one place.

formlyTransformer.register(function(fields, model, form, formOptions) {
    // ...
});

Special space in formly field configuration (formlyconfig)

formlyTransformer creates property with "transformers" key and empty object as value.

Special space is removed after all the transformers are executed.

So basically, you can put there all your transformation methods which are based on custom property.

Example

angular.module('myAppName', [
    'formly',
    'formlyTransformer'
  ])
  .run(runApp)
  .controller('demoCtrl', demoCtrl);
  
  function runApp(formlyTransformer) {
        // label upperCaseLabel transformer
        formlyTransformer.register(function(fields) {
            fields.forEach((field) => {
                if(field.transformers.upperCaseLabel && field.templateOptions && field.templateOptions.label) {
                    field.templateOptions.label = field.templateOptions.label.toUpperCase();
                }
            });
        });
  }
  
  function demoCtrl(formlyTransformer) {
        var vm = this;
        
        vm.fields = [
            key: 'firstName',
            type: 'input',
            templateOptions: {
                label: 'First name'
            },
            transformers: {
                upperCaseLabel: true
            }
        ];
        
        console.log(vm.fields[0].templateOptions.label); // FIRST NAME
  }

Bitdeli Badge