Simple angular app
HTML
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.angularjs.org/1.0.6/angular.min.js"></script>
<div ng-app='demo' ng-controller='MyCtrl'>
<select id="mySelect" option-without-space>
<option ng-repeat="(key, value) in headers">{{value | space}}
</option>
</select>
</div>
JavaScript
var demo = angular.module('demo', []);
demo.directive('optionWithoutSpace', function($parse) {
return {
restrict: 'A',
link: function(scope, elem, attributes) {
var selectedOptionWithoutSpace = function () {
var selectedOption = $('#mySelect option:selected');
$(elem).append('<option class="nastyOption" selected="selected">' + selectedOption.text().trim() +'</option>');
$("#mySelect option").each(function() {
$(this).css('background-color', '');
});
selectedOption.css('background-color', '#1e90ff');
return false;
};
var hackToHideOption = function () {
if($('option.nastyOption').length > 0) {
$(".nastyOption").hide()
}
};
$(elem).on('change', selectedOptionWithoutSpace);
$(elem).on('click', hackToHideOption);
}
}
});
demo.filter('space', function() {
return function(text) {
if(text.mainId === undefined)
{
console.log('entered mainId');
return text.value;
}
else
{
console.log('entered');
return '\u00A0\u00A0' + text.value;
}
};
});
function MyCtrl ($scope) {
$scope.headers = [{
value: 'value 1'
}, {
value: 'value 2',
mainId: 12
}, {
value: 'value 3'
}, {
value: 'value 4',
mainId: 14
}, {
value: 'value 5'
}, {
value: 'value 6',
mainId: 18
}];
};