I am new to AngularJS. I searched a lot, but it does not solve my problem.
I am getting a blank option for the first time in select box.
Here is my HTML code
<div ng-app="MyApp1">     <div ng-controller="MyController">         <input type="text" ng-model="feed.name" placeholder="Name" />         <select ng-model="feed.config">             <option ng-repeat="template in configs">{{template.name}}</option>         </select>     </div> </div>   JS
var MyApp=angular.module('MyApp1',[]) MyApp.controller('MyController', function($scope) {     $scope.feed = {};        //Configuration       $scope.configs = [                                  {'name': 'Config 1',                                   'value': 'config1'},                                  {'name': 'Config 2',                                   'value': 'config2'},                                  {'name': 'Config 3',                                   'value': 'config3'}                                ];       //Setting first option as selected in configuration select       $scope.feed.config = $scope.configs[0].value; });   But it doesn't seem to work. How can I get this solved? Here is JSFiddle Demo
For reference : Why does angularjs include an empty option in select?
The empty
optionis generated when a value referenced byng-modeldoesn't exist in a set of options passed tong-options. This happens to prevent accidental model selection: AngularJS can see that the initial model is either undefined or not in the set of options and don't want to decide model value on its own.In short: the empty option means that no valid model is selected (by valid I mean: from the set of options). You need to select a valid model value to get rid of this empty option.
Change your code like this
var MyApp=angular.module('MyApp1',[]) MyApp.controller('MyController', function($scope) {   $scope.feed = {};    //Configuration   $scope.feed.configs = [     {'name': 'Config 1',      'value': 'config1'},     {'name': 'Config 2',      'value': 'config2'},     {'name': 'Config 3',      'value': 'config3'}   ];   //Setting first option as selected in configuration select   $scope.feed.config = $scope.feed.configs[0].value; });  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div ng-app="MyApp1">   <div ng-controller="MyController">     <input type="text" ng-model="feed.name" placeholder="Name" />     <!-- <select ng-model="feed.config"> <option ng-repeat="template in configs">{{template.name}}</option> </select> -->     <select ng-model="feed.config" ng-options="template.value as template.name for template in feed.configs">     </select>   </div> </div>  Working JSFiddle Demo
UPDATE (Dec 31, 2015)
If You don't want to set a default value and want to remove blank option,
<select ng-model="feed.config" ng-options="template.value as template.name for template in feed.configs">       <option value="" selected="selected">Choose</option> </select>  And in JS no need to initialize value.
$scope.feed.config = $scope.feed.configs[0].value;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With