Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
  <head>
    <!-- Twitter bootstrap -->
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
    <link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.common.min.css" rel="stylesheet" />
    <link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.common-material.min.css" rel="stylesheet" />
    <link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.rtl.min.css" rel="stylesheet" />
    <link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.material.min.css" rel="stylesheet" />
    <link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.material.mobile.min.css" rel="stylesheet" />
    <link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.dataviz.min.css" rel="stylesheet" />
    <link href="http://cdn.kendostatic.com/2015.2.624/styles/kendo.dataviz.material.min.css" rel="stylesheet" />
    
    <!-- apiCheck is used by formly to validate its api -->
    <script src="//rawgit.com/kentcdodds/apiCheck.js/latest/dist/api-check.js"></script>
    <!-- This is the latest version of angular (at the time this template was created) -->
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script>
<script src="http://cdn.kendostatic.com/2014.2.624/js/kendo.all.min.js"></script>
    <!-- This is the current state of master for formly core. -->
    <script src="//rawgit.com/formly-js/angular-formly/latest/dist/formly.js"></script>
    <!-- This is the current state of master for the bootstrap templates -->
    <script src="//rawgit.com/formly-js/angular-formly-templates-bootstrap/latest/dist/angular-formly-templates-bootstrap.js"></script>
    <title>Angular Formly Example</title>
  </head>
  <body ng-app="formlyExample" ng-controller="MainCtrl as vm">
    <div>
      
      <form class="form-horizontal" ng-submit="vm.onSubmit()" novalidate>
        <formly-form model="vm.model" fields="vm.fields" form="vm.form">
          <button type="submit" class="btn btn-primary submit-button">Submit</button>
        </formly-form>
      </form>
      
  </body>
</html>
 
body {
  margin: 20px
}
.formly-field {
  margin-bottom: 16px;
}
 
/* global angular */
(function() {
  
  'use strict';
  var app = angular.module('formlyExample', ['formly', 'formlyBootstrap'], function config(formlyConfigProvider) {
    // set templates here
    formlyConfigProvider.setWrapper({
      name: 'horizontalBootstrapLabel',
      template: [
        '<label for="{{::id}}" class="col-sm-2 control-label">',
          '{{to.label}} {{to.required ? "*" : ""}}',
        '</label>',
        '<div class="col-sm-8">',
          '<formly-transclude></formly-transclude>',
        '</div>'
      ].join(' ')
    });
    
    formlyConfigProvider.setWrapper({
      name: 'horizontalBootstrapCheckbox',
      template: [
        '<div class="col-sm-offset-2 col-sm-8">',
          '<formly-transclude></formly-transclude>',
        '</div>'
      ].join(' ')
    });
    
    formlyConfigProvider.setType({
      name: 'horizontalInput',
      extends: 'input',
      wrapper: ['horizontalBootstrapLabel', 'bootstrapHasError']
    });
    
    formlyConfigProvider.setType({
      name: 'horizontalCheckbox',
      extends: 'checkbox',
      wrapper: ['horizontalBootstrapCheckbox', 'bootstrapHasError']
    });
  });
  
  app.controller('MainCtrl', function MainCtrl(formlyVersion) {
    var vm = this;
    // funcation assignment
    vm.onSubmit = onSubmit;
    // variable assignment
    vm.author = { // optionally fill in your info below :-)
      name: 'Kent C. Dodds',
      url: 'https://twitter.com/kentcdodds' // a link to your twitter/github/blog/whatever
    };
    vm.exampleTitle = 'Bootstrap Horizontal'; // add this
    vm.env = {
      angularVersion: angular.version.full,
      formlyVersion: formlyVersion
    };
    vm.model = {};
    
    vm.fields = [
      {
        key: 'email',
        type: 'horizontalInput',
        className: 'custom-classname',
        templateOptions: {
          label: 'Email',
          type: 'email',
          placeholder: 'Formly is terrific!',
          required: true
        }
      },
      {
        key: 'password',
        type: 'horizontalInput',
        templateOptions: {
          label: 'Password',
          type: 'password',
          placeholder: 'Formly is terrific!',
          required: true
        }
      },
      {
        key: 'remember',
        type: 'horizontalCheckbox',
        templateOptions: {
          label: 'Remember Me'
        }
      }
    ];
    
    vm.originalFields = angular.copy(vm.fields);
    // function definition
    function onSubmit() {
      alert(JSON.stringify(vm.model), null, 2);
    }
  });
})();
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
kentcdoddspro
0viewers