<!DOCTYPE html>
<html ng-app="app">

<head>
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic">
  <link rel="stylesheet" href="https://material.angularjs.org/latest/angular-material.min.css" type="text/css">

</head>

<body>
  <h1>Password and confirm password validate</h1>

  <div data-ng-controller="PasswordController as vmPassword">
    <form name="passwordForm">
      <md-input-container class="md-block" flex-gt-sm>
        <label>Password</label>
        <input type="password" name="password" ng-model="vmPassword.password" required />
        <div ng-messages="passwordForm.password.$error" role="alert" class="form-errors first-name-error">
          <div ng-message="required">Password is required.</div>
        </div>
      </md-input-container>

      <md-input-container class="md-block" flex-gt-sm>
        <label>Confirm Password</label>
        <input type="password" name="confirm_password" ng-model="vmPassword.confirm_password" required compare-to="vmPassword.password" />
        <div ng-messages="passwordForm.confirm_password.$error" role="alert" class="form-errors first-name-error">
          <div ng-message="required">Password is required.</div>
          <div ng-message="compareTo">Must not match</div>
        </div>
      </md-input-container>
    </form>
  </div>


  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-route.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script>
  <script src="https://material.angularjs.org/latest/angular-material.min.js"></script>
  
  
  <script src="script.js"></script>


</body>

</html>
 /**
 * Developer Umanda Jayobandara (umanda.uj@gmail.com)
 */

  
    // App

    var parastatsApp =
      angular
      .module("app", [
        "ngAnimate",
        'ngMaterial',
        'ngMessages',

      ]);

    // Controller

    (function() {

      "use strict"
      // Define nameOfController
      angular.module('app').controller('PasswordController', PasswordController);

      // Dependency Injection'$rootScope'];

      function PasswordController() {

        var vmPassword = this;

      }

    })();

    // Directiver

    (function() {
      "use strict";

      angular.module('app').directive('compareTo', compareTo);

      compareTo.$inject = [];

      function compareTo() {

        return {
          require: "ngModel",
          scope: {
            compareTolValue: "=compareTo"
          },
          link: function(scope, element, attributes, ngModel) {

            ngModel.$validators.compareTo = function(modelValue) {

              return modelValue == scope.compareTolValue;
            };

            scope.$watch("compareTolValue", function() {
              ngModel.$validate();
            });
          }
        };
      }
    })();
/* Styles go here */

Password and confirm password validate