On Github agileurbanite / formly-forms
By Patrick Woo Agile Urbanite
I am a software engineer at Capital One, that loves to find solutions to interesting problems.
<input ng-model="vm.user.fluxdate">
<div>
<label>Flux Date</label>
<input ng-model="vm.user.fluxdate">
</div>
<div>
<label for="flux">Flux Date</label>
<input ng-model="vm.user.fluxdate" id="flux">
</div>
<div class="form-group">
<label for="flux">Flux Date</label>
<input ng-model="vm.user.fluxdate" id="flux" class="form-control">
</div>
<div class="form-group">
<label for="flux">Flux Date</label>
<input ng-model="vm.user.fluxdate" id="flux" class="form-control" ng-disabled="vm.disabled" ng-required="true" ng-minlength="3" ng-maxlength="20" ng-pattern="/^a-zA-Z*$/">
</div>
Formly is an angular module which makes working with forms more enjoyable. It lets you configure your forms from your controller using JSON.
<div class="edit">
<form name="editForm" data-ng-submit="edit.submit()">
<div class="form-group" ng-class="{'has-error': editForm.username.$touched && editForm.username.$invalid }">
<label for="username">Username</label>
<input name="username" class="form-control" id="username" type="text" data-ng-model="edit.model.username" placeholder="Username" ng-required="true" ng-minlength="2" ng-pattern="/^a-zA-Z*$/">
</div>
<div class="form-group" ng-class="{'has-error': editForm.rank.$touched && editForm.rank.$invalid }">
<label for="rank">Rank</label>
<input name="rank" id="rank" type="text" data-ng-model="edit.model.rank" placeholder="Rank" ng-required="true" ng-pattern="/^a-zA-Z*$/">
</div>
<div>
<label data-ng-repeat="btype in edit.model.type">
<input id="{{btype}}" type="checkbox" checklist-model="edit.user.roles" checklist-value="btype"> {{btype}}
</label>
</div>
<div class="form-group" ng-class="{'has-error': editForm.tribe.$touched && editForm.tribe.$invalid }">
<label for="tribe">Tribe</label>
<input name="tribe" id="tribe" type="text" data-ng-model="edit.model.tribe" placeholder="Tribe" ng-minlength="2" ng-required="true">
</div>
<div class="form-group" ng-class="{'has-error': editForm.catchphrase.$touched && editForm.catchphrase.$invalid }">
<label for="catchphrase">Catchphrase</label>
<input name="catchphrase" id="catchphrase" type="text" data-ng-model="edit.model.catchphrase" placeholder="Catchphrase" ng-required="true">
</div>
<div class="checkbox">
<label data-ng-repeat="power in edit.model.powers">
<input id="{{power}}" type="checkbox" checklist-model="edit.user.powers" checklist-value="power"> {{power}}
</label>
</div>
<button data-ng-click="edit.cancel(edit.model.id)">Cancel</button>
<button type="submit">Submit</button>
</form>
</div>
<div class="edit">
<form name="formlyForm" data-ng-submit="formly.submit()">
<formly-form model="formly.model" fields="formly.fields" form="formlyForm">
<button data-ng-click="formly.cancel(formly.model.id)">Cancel</button>
<button type="submit">Submit</button>
</formly-form>
</form>
</div>
with some js...