我是AngularJS的新手。我进行了很多搜索,但是并不能解决我的问题。
我第一次在选择框中得到一个空白选项。
这是我的HTML代码
<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; });
但这似乎不起作用。我该如何解决?这是JSFiddle演示
option当ng-model传递给的一组选项中不存在被引用的值时,将生成空值ng- options。这样做是为了防止意外选择模型:AngularJS可以看到初始模型是未定义的还是未在选项集中,并且不想自行决定模型的值。 简而言之:空选项意味着没有选择有效的模型(有效的意思是:从选项集中)。您需要选择一个有效的模型值来摆脱此空选项。
option当ng-model传递给的一组选项中不存在被引用的值时,将生成空值ng- options。这样做是为了防止意外选择模型:AngularJS可以看到初始模型是未定义的还是未在选项集中,并且不想自行决定模型的值。
option
ng-model
ng- options
简而言之:空选项意味着没有选择有效的模型(有效的意思是:从选项集中)。您需要选择一个有效的模型值来摆脱此空选项。
像这样更改代码
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>
工作中的JSFiddle演示
更新(2015年12月31日)
如果您不想设置默认值并想删除空白选项,
<select ng-model="feed.config" ng-options="template.value as template.name for template in feed.configs"> <option value="" selected="selected">Choose</option> </select>
并且在JS中无需初始化值。
$scope.feed.config = $scope.feed.configs[0].value;