<!DOCTYPE html>
<html>

  <head>
    <script data-require="angular.js@1.1.5" data-semver="1.1.5" src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
    <script src="script.js"></script>
  </head>

  <body ng-app="FormApp">

		<div ng-controller="EntityForm">
			
			<form role="form">
				<div ng-repeat="element in form" ng-switch="element.widget">
					<div class="form-group" ng-switch-when="select">   
						<select class="form-control" ng-model="element.model" ng-required="element.required" ng-options="o.key as o.name for o in element.options">
							<option value="">{{element.label}}</option>
						</select>
					</div>
				</div>
			</form> 

		</div>	

  </body>

</html>
var app = angular.module('FormApp', []);

app.controller('EntityForm', function ($scope) {

    $scope.form = [
	    {
          label: 'Age range',
          model: 'age_range',
          widget: 'select',
          required: true,
          options: [{
              key: '20',
              name: 'm20'
          }, {
              key: '40',
              name: 'm40'
          }, {
              key: '60',
              name: 'm60'
          }]
      }
    ];

});