<!doctype html>
<html ng-app="datepickerBasicUsage">

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-animate.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-aria.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.3/angular-material.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.1.3/angular-material.css">
  <script src="script.js"></script>
</head>

<body>

  <div ng-controller="AppCtrl" style='padding: 40px;'>
    <form>
      <md-content>
        <h4>Dynamic format date-picker</h4>
        <div ng-if="dateLoaded">
          <div ng-repeat="field in datas">
            <md-datepicker ng-model="myDate" md-date-locale="locales[field.id]"></md-datepicker>
          </div>
        </div>
      </md-content>
    </form>
  </div>
</body>

</html>
angular.module('datepickerBasicUsage', ['ngMaterial'])
  .controller('AppCtrl', function($scope, $timeout, $http) {
    $scope.format = 'L';
    $scope.myDate = new Date();
    $scope.locales = [];

    function buildLocale(format) {
      return {
        formatDate: function(date) {
          return moment(date).isValid() ? moment(date).format(format) : '';
        }
      }
    }

    function load() {
      $http.get('data.json').then(function(data) {
        $scope.datas = data.data;
        angular.forEach($scope.datas, function(item) {
          $scope.locales[item.id] = buildLocale(item.format);
        })
        $scope.dateLoaded = true;
      });
    }

  
    load();
  })
/* Styles go here */

[{
  "id": "date1",
  "format": "MM/DD/YYYY"
}, {
  "id": "date2",
  "format": "MM/DD/YYYY"
}, {
  "id": "date3",
  "format": "DD/MM/YYYY"
}]