src/components/chips/js/contactChipsDirective.js
function MdContactChips($mdTheming, $mdUtil) {
  return {
    template: function(element, attrs) {
      return MD_CONTACT_CHIPS_TEMPLATE;
    },
    restrict: 'E',
    controller: 'MdContactChipsCtrl',
    controllerAs: '$mdContactChipsCtrl',
    bindToController: true,
    compile: compile,
    scope: {
      contactQuery: '&mdContacts',
      placeholder: '@?',
      secondaryPlaceholder: '@?',
      contactName: '@mdContactName',
      contactImage: '@mdContactImage',
      contactEmail: '@mdContactEmail',
      contacts: '=ngModel',
      ngChange: '&?',
      requireMatch: '=?mdRequireMatch',
      minLength: '=?mdMinLength',
      highlightFlags: '@?mdHighlightFlags',
      chipAppendDelay: '@?mdChipAppendDelay',
      separatorKeys: '=?mdSeparatorKeys',
      removedMessage: '@?mdRemovedMessage',
      inputAriaDescribedBy: '@?inputAriaDescribedby',
      inputAriaLabelledBy: '@?inputAriaLabelledby',
      inputAriaLabel: '@?',
      containerHint: '@?',
      containerEmptyHint: '@?',
      deleteHint: '@?'
    }
  };

  function compile(element, attr) {
    return function postLink(scope, element, attrs, controllers) {
      var contactChipsController = controllers;

      $mdUtil.initOptionalProperties(scope, attr);
      $mdTheming(element);

      element.attr('tabindex', '-1');

      attrs.$observe('mdChipAppendDelay', function(newValue) {
        contactChipsController.chipAppendDelay = newValue;
      });
    };
  }
}
function MdContactChips($mdTheming, $mdUtil) {
  return {
    template: function(element, attrs) {
      return MD_CONTACT_CHIPS_TEMPLATE;
    },
    restrict: 'E',
    controller: 'MdContactChipsCtrl',
    controllerAs: '$mdContactChipsCtrl',
    bindToController: true,
    compile: compile,
    scope: {
      contactQuery: '&mdContacts',
      placeholder: '@?',
      secondaryPlaceholder: '@?',
      contactName: '@mdContactName',
      contactImage: '@mdContactImage',
      contactEmail: '@mdContactEmail',
      contacts: '=ngModel',
      ngChange: '&?',
      requireMatch: '=?mdRequireMatch',
      minLength: '=?mdMinLength',
      highlightFlags: '@?mdHighlightFlags',
      chipAppendDelay: '@?mdChipAppendDelay',
      separatorKeys: '=?mdSeparatorKeys',
      removedMessage: '@?mdRemovedMessage',
      inputAriaDescribedBy: '@?inputAriaDescribedby',
      inputAriaLabelledBy: '@?inputAriaLabelledby',
      inputAriaLabel: '@?',
      containerHint: '@?',
      containerEmptyHint: '@?',
      deleteHint: '@?'
    }
  };

  function compile(element, attr) {
    return function postLink(scope, element, attrs, controllers) {
      var contactChipsController = controllers;

      $mdUtil.initOptionalProperties(scope, attr);
      $mdTheming(element);

      element.attr('tabindex', '-1');

      attrs.$observe('mdChipAppendDelay', function(newValue) {
        contactChipsController.chipAppendDelay = newValue;
      });
    };
  }
}
function MdContactChips ( $mdTheming , $mdUtil ) { return { template : function ( element , attrs ) { return MD_CONTACT_CHIPS_TEMPLATE ; } , restrict : 'E' , controller : 'MdContactChipsCtrl' , controllerAs : '$mdContactChipsCtrl' , bindToController : true , compile : compile , scope : { contactQuery : '&mdContacts' , placeholder : '@?' , secondaryPlaceholder : '@?' , contactName : '@mdContactName' , contactImage : '@mdContactImage' , contactEmail : '@mdContactEmail' , contacts : '=ngModel' , ngChange : '&?' , requireMatch : '=?mdRequireMatch' , minLength : '=?mdMinLength' , highlightFlags : '@?mdHighlightFlags' , chipAppendDelay : '@?mdChipAppendDelay' , separatorKeys : '=?mdSeparatorKeys' , removedMessage : '@?mdRemovedMessage' , inputAriaDescribedBy : '@?inputAriaDescribedby' , inputAriaLabelledBy : '@?inputAriaLabelledby' , inputAriaLabel : '@?' , containerHint : '@?' , containerEmptyHint : '@?' , deleteHint : '@?' } } ; function compile ( element , attr ) { return function postLink ( scope , element , attrs , controllers ) { var contactChipsController = controllers ; $mdUtil . initOptionalProperties ( scope , attr ) ; $mdTheming ( element ) ; element . attr ( 'tabindex' , '-1' ) ; attrs . $observe ( 'mdChipAppendDelay' , function ( newValue ) { contactChipsController . chipAppendDelay = newValue ; } ) ; } ; } }
MDContactChips Directive Definition

@param $mdTheming
@param $mdUtil
@returns {*}
@ngInject
MDContactChips Directive Definition