code: function attributeWithObserve(className) {
  
      return ['$mdUtil', '$interpolate', "$log", function(_$mdUtil_, _$interpolate_, _$log_) {
        $mdUtil = _$mdUtil_;
        $interpolate = _$interpolate_;
        $log = _$log_;
  
        return {
          restrict: 'A',
          compile: function(element, attr) {
            var linkFn;
            if (config.enabled) {
              // immediately replace static (non-interpolated) invalid values...
  
              validateAttributeUsage(className, attr, element, $log);
  
              validateAttributeValue(className,
                getNormalizedAttrValue(className, attr, ""),
                buildUpdateFn(element, className, attr)
              );
  
              linkFn = translateWithValueToCssClass;
            }
  
            // Use for postLink to account for transforms after ng-transclude.
            return linkFn || angular.noop;
          }
        };
      }];
  
      /**
       * Add as transformed class selector(s), then
       * remove the deprecated attribute selector
       */
      function translateWithValueToCssClass(scope, element, attrs) {
        var updateFn = updateClassWithValue(element, className, attrs);
        var unwatch = attrs.$observe(attrs.$normalize(className), updateFn);
  
        updateFn(getNormalizedAttrValue(className, attrs, ""));
        scope.$on("$destroy", function() { unwatch(); });
      }
    }
docs: *********************************************************************************  These functions create registration functions for AngularJS Material Layout attribute directives This provides easy translation to switch AngularJS Material attribute selectors to CLASS selectors and directives; which has huge performance implications for IE Browsers  ********************************************************************************* 
  Creates a directive registration function where a possible dynamic attribute
  value will be observed/watched.
  @param {string} className attribute name; eg `layout-gt-md` with value ="row"