2014-02-26 48 views
0

我的下拉HTML如下:AngularJs下拉值清理出模型值

<select name="originType" class="form-control" 
     ng-model="myLocationType" 
     ng-options="type.Key as type.Value for type in allLocationTypes" 
     required></select> 

也能正常工作來填充下拉列表。但是,當我加載頁面並使用模型數據填充頁面時,應該從未選擇的值是。下拉菜單始終處於默認(空白)值。對於不是鍵/值對的下拉菜單,我沒有任何問題。例如:

<select name="shipId" class="form-control" 
     ng-model="WageAgreement.ShipId" 
     ng-options="shipId for shipId in manufacturers" 
     required></select> 
+0

Angular始終在select中爲「默認」選項提供了一項規定。當模型未定義時顯示。如果你想讓默認選項成爲別的東西,那麼給選擇模型分配一個值。 – Sai

回答

0

如果模型值與數組中提供的值匹配,那麼填充模型值應該可以工作。見http://jsfiddle.net/5qp54/2/在當設置爲模型值WageAgreement.ShipId

var mod = angular.module("myApp", []); 

mod.controller("MainController", function ($scope) { 
    $scope.allLocationTypes = [ 
     {Key: 1, Value: "Shipyard 1"}, 
     {Key: 2, Value: "Shipyard 2"}, 
     {Key: 3, Value: "Shipyard 3"} 
    ]; 
    $scope.WageAgreement = {}; 

    //Populate value here 
    $scope.WageAgreement.ShipId = 2; 
}); 

請問你的模型值相匹配你的對象數組中的重點選擇2?如果它沒有選擇下拉列表中的值,我懷疑有些東西不匹配。

如果這不能回答您的問題,您是否可以使用jsfiddle或樣本來更新您的帖子或填寫製造商/ allLocations和WageAgreement的樣本?

+0

你說得對。該鍵是一個C#枚舉。該模型正在使用[JsonConverter(typeof(StringEnumConverter))]返回,它導致枚舉返回爲一個像enum一樣讀取的字符串。下拉列表正在通過直接獲取枚舉來填充,這意味着該值被存儲爲整數。改變它使用枚舉的字符串值,一切正常! –