Angular: Empty Fiddle

http://angularjs.org/

by ababashka

HTML

<div ng-controller="MyCtrl">
    <p>   "Real" use case (<i>goal</i>) is to handle grouping, like below, pre-select the null value and not have an empty element ever appear.</p>
<p>    Howto: Select any value, then the --- value! Why is a new null element added and how do I remove it?
</p>    
    <div>Preferred version: <select ng-model='form.groupType' required ng-options='option.value as option.name group by option.group for option in groupTypeOptions'></select></div>
    <b>Selected: {{form.groupType}}</b>
    
    <br /><br />
    <p>Simple version, similair behaviour despite multiple attempts</p>
    
    <div>Preferred version: <select ng-model='form.type' required ng-options='option.value as option.name for option in typeOptions track by option.value'></select></div>
    <div>Backup idea #1: <select ng-model='form.type' required ng-options='option.name for option in typeOptions track by option.value'></select></div>
    <div>Backup idea #2: <select ng-model='form.type' required ng-options='option.value as option.name for option in typeOptions'></select></div>
    <b>Selected: {{form.type}}</b>
        
</div>

JavaScript

var myApp = angular.module('myApp',[]);


function MyCtrl($scope) {
    
    $scope.typeOptions = [
    { name: '---', value: null }, 
    { name: 'Feature', value: 'feature' }, 
    { name: 'Bug', value: 'bug' }, 
    { name: 'Enhancement', value: 'enhancement' }
    ];

    $scope.groupTypeOptions = [
        { group: 'g1', name: '---', value: undefined }, 
    { group: 'g2', name: 'Feature', value: 'feature' }, 
    { group: 'g2', name: 'Bug', value: 'bug' }, 
    { group: 'g2', name: 'Enhancement', value: 'enhancement' }
    ];
    $scope.form = {
        type : $scope.typeOptions[0].value,
        groupType : $scope.groupTypeOptions[0].value
    };
    
    
}