如何使用ng-options在下拉列表中设置默认值?

时间:2014-08-28 04:30:05

标签: angularjs angularjs-directive angularjs-scope

我在表单中使用了一个列出项目的下拉框。

这是html代码:

<tr>
  <td><label>items</label></td>
  <td>
    <select ng-model="addItems.item" ng-options="item.name for item in itemList" ng-init="getItemsList()">                       
    </select>
  </td>
</tr>

这是我的控制者:

$scope.getItemsList = function() {
    $http({
        method : "GET" ,
        url : "/items/allitems"
    }).success(function(data) {
        $scope.itemList = data;                              
        $scope.additems.item = $scope.itemList[0].id;
    });
};

问题是:我从控制器获取了项目列表并通过ng-model绑定了这些列表。但是我在下拉列表中列出了项目的名称,如果我选择任何特定项目的ID将被发送到数据库进行存储。

如果我运行此代码,我在浏览器中得到以下结果:

<option value="?" selected="selected"></option>
<option value="0">pen</option>
<option value="1">notebook</option>
<option value="2">marker</option>

任何人都可以打电话给我,我是否有任何错误,并给我一个提示,将第一个值作为默认值,而不是空选择

3 个答案:

答案 0 :(得分:0)

ng-init标签可能有一个提示,之前我遇到过类似的问题。 您可以使用以下HTML代码:

<tr>
  <td><label>items</label></td>
  <td ng-init="getItemsList()">
    <select ng-model="addItems.item" ng-options="item.name for item in itemList">                       
    </select>
  </td>
</tr>

答案 1 :(得分:0)

将ng-options更改为

ng-options="item.id as item.name for item in itemList"

然后你的代码就可以了。

答案 2 :(得分:0)

您可以在下拉菜单初始化时使用下拉菜单选项ID或名称为模型分配索引 如下所示

class TriangleError(Exception):
    pass