Angular,选择列表第一项为空

时间:2014-08-20 18:34:29

标签: html angularjs

我正在填充我的选择列表 -

<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; (其余的人都很好)。我似乎无法弄清楚为什么要这样做。任何帮助将非常感激。谢谢!

3 个答案:

答案 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是数组中第一个元素的名称。