Code Monkey home page Code Monkey logo

ng-formly's Introduction

angular-formly logo

ng-formly

Angular Style Guide All Contributors Stories in Ready

Status: Build Status npm version devDependencies Status Package Quality Known Vulnerabilities codecov.io

Links: Gitter PRs Welcome

angular2-formly is an Angular 2 module which has a Components to help customize and render JavaScript/JSON configured forms. The formly-form Component and the FormlyConfig service are very powerful and bring unmatched maintainability to your application's forms.

Quick Start

1. Install ng-formly

  npm install ng-formly --save

2. Import the FormlyModule:

import {NgModule} from '@angular/core';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {BrowserModule} from '@angular/platform-browser';
import {FormlyModule, FormlyBootstrapModule} from 'ng-formly';
import {AppComponent} from './app';

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    ReactiveFormsModule,
    FormlyModule.forRoot(),
    FormlyBootstrapModule,
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule {
}

3. Define the form config in your component:

import {Component} from '@angular/core';
import {Validators, FormGroup} from '@angular/forms';
import {FormlyFieldConfig} from 'ng-formly';

@Component({
  selector: 'app',
  template: `
    <form class="formly" role="form" novalidate [formGroup]="form" (ngSubmit)="submit(user)">
        <formly-form [model]="user" [fields]="userFields">
            <button type="submit" class="btn btn-default">Button</button>
        </formly-form>
    </form>
  `,
})
export class HelloApp {
  form: FormGroup = new FormGroup({});
  userFields: Array<FormlyFieldConfig> = [{
    className: 'row',
    fieldGroup: [{
        className: 'col-xs-6',
        key: 'email',
        type: 'input',
        templateOptions: {
            type: 'email',
            label: 'Email address',
            placeholder: 'Enter email'
        },
        validators: {
          validation: Validators.compose([Validators.required])
        }
    }, {
        className: 'col-xs-6',
        key: 'password',
        type: 'input',
        templateOptions: {
            type: 'password',
            label: 'Password',
            placeholder: 'Password',
            pattern: ''
        },
        validators: {
          validation: Validators.compose([Validators.required])
        }
    }]
  }];

  user = {
    email: '[email protected]',
    checked: false
  };

  submit(user) {
    console.log(user);
  }
}

From there, it's just JavaScript. Allowing for DRY, maintainable, reusable forms.

Roadmap

See the issues labeled enhancement

Supported templates

Thanks

A special thanks to Kent C. Dodds for giving me opportunity to work on this. This library is maintained (with love) by me, Mohammed Zama Khan. Thanks to all contributors! If you're trying to find angular-formly, go here

Contributors

Thanks goes to these wonderful people (emoji key):


Zama Khan Mohammed

๐Ÿ“– ๐Ÿ’ป ๐Ÿ‘€ ๐Ÿ’ ๐Ÿš‡ ๐Ÿ”ง

Abdellatif Ait boudad

๐Ÿ’ป ๐Ÿ“– โš ๏ธ ๐Ÿ‘€ ๐Ÿ’

divyakumarjain

๐Ÿ’ป ๐Ÿ“– ๐Ÿ”Œ ๐Ÿ‘€ ๐Ÿ’

Pouja

๐Ÿ’ป ๐Ÿ‘€

Caleb Kniffen

๐Ÿ›

Riron

๐Ÿ›

Thiago Lacerda

๐Ÿ›

danielcrisp

๐Ÿ› ๐Ÿ’ป

Tony Franzese

๐Ÿ› ๐Ÿ’ป

Jackie Gleason

๐Ÿ› ๐Ÿ’ป

ampsarfraz

๐Ÿ›

Krustie101

๐Ÿ› ๐Ÿ’ป

ultimafirez

๐Ÿ›

This project follows the all-contributors specification. Contributions of any kind welcome!

ng-formly's People

Contributors

mohammedzamakhan avatar aitboudad avatar divyakumarjain avatar couzic avatar franzeal avatar krustie101 avatar beeman avatar jrgleason avatar themcmurder avatar waffle-iron avatar marcosellys avatar mathijshoogland avatar pouja avatar riron avatar blowsie avatar tom-v avatar danielcrisp avatar francisco-sanchez-molina avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.