UNPKG

landers.angular

Version:

landers.angular

35 lines (33 loc) 1.36 kB
;angular.module('Landers.angular') .directive('keyToText', ['$timeout', 'Flat', function($timeout, Flat) { return { restrict : 'E', scope: { ngModel: '=', enums: '=' }, link : function($scope, $ele, $attrs) { var default_value = $attrs['defaultValue'] || ('defaultValue' in $attrs); var field = $attrs['key'] || 'text'; $scope.$watch('ngModel', function(new_value){ if (new_value === undefined || new_value === null) return; var enums = $scope.enums; if (!enums) { return; } var data = enums[new_value]; if (!data && default_value) { data = {}; data[field] = default_value === true ? new_value : default_value; data._class = $attrs['defaultClass']; } if (!data) return ''; $ele.html(data[field]); if (data._class) { for (var k in enums) $ele.removeClass(enums[k]['_class']); $ele.addClass(data._class); } }); } }; }]);