Found a bug I think.. when not using Angular Material, the device name list directive wasn't working. The optionsExpr when using <select> seems to need a different input.. adding 'deviceName for' in the optionsExpr seemed to fix it. I added another variable for the material design below..

template: function(element, attrs) {
          var optionsExprmd = 'deviceName in deviceNames track by $index';
	  var optionsExpr = 'deviceName for deviceName in deviceNames track by $index';

          if ($injector.has('$mdUtil')) {
              return '<md-select md-on-open="onOpen()"><md-option ng-value="deviceName" ng-repeat="' + optionsExprmd + '" ng-bind="deviceName"></md-option></md-select>';
          }

          return '<select ng-options="' + optionsExpr + '"></select>';