我正在填充我的选择列表 -
<select class="selectLevel0" ng-model='scope1' ng-change='scope1Change()'
ng-options='obj.name for obj in array track by obj.id'>
</select>
这是背后的$ http:
//populate scopes
$http.post("/listScopes").success(function(data){
$scope.array = data.scopes;
});
发生了什么 - 我得到的第一个选择项目没有名称和值=&#34;?&#34; (其余的人都很好)。我似乎无法弄清楚为什么要这样做。任何帮助将非常感激。谢谢!
答案 0 :(得分:4)
原因是,由于您的ngModel很可能未分配或未正确分配id,因此angular会创建一个空白选项并将其显示为已选中。
您可以添加默认选项: -
<select class="selectLevel0" ng-model='scope1' ng-change='scope1Change()'
ng-options='obj.name for obj in array track by obj.id'>
<option value="">Please choose a level</option>
</select>
或者在控制器中将ngModel设置为默认值,或者将其设置为ng-init
。我会在控制器中做到这一点: -
$scope.scope1 = "id"
答案 1 :(得分:1)
似乎scope1
的值为空或未定义,如果它为空则尝试使用ng-init
或在控制器中定义它。
答案 2 :(得分:1)
默认情况下,Angular会创建一个空白的第一个选择,以避免意外选择选项。要删除它,请设置scope1 = obj.name
其中obj.name是数组中第一个元素的名称。