2014-08-28 50 views
0

我正在使用列表項中的下拉框。如何使用ng-options在下拉菜單中設置默認值?

這是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-模型。但我列出項目的名稱下拉,如果我選擇任何特定項目的ID將被髮送到數據庫進行存儲。

如果我運行這段代碼我得到了以下結果在瀏覽器中:

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

誰能請電話我,我是否沒有任何錯誤,給我一個提示,有1個值作爲默認的,而不是空選擇

+0

在itemList中使用「item.id作爲項目的item.name」。如果沒有第一部分,它會將名稱存儲在additems.item中,並且它不起作用。相反,你可以做$ scope.additems.item = $ scope.itemList [i] .name; – 2014-08-28 04:49:39

+0

沒有它沒有工作zack.still它顯示空值作爲默認:( – Ninja 2014-08-28 05:03:16

回答

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> 
+0

我試過這個,但我不知道爲什麼有一個空的空間下拉,而我用ng-model.its沒有被選中。 – Ninja 2014-08-28 05:42:46

+0

你可以嘗試這個: 2014-08-29 06:14:57

0

改變你的NG-選項

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

,然後你的代碼應該工作。