2017-05-30 81 views
0

嗨我正在開發網絡應用angularjs。我有一個html表單,裏面有dropdownboxlist。我在這裏有兩個場景。首先,我將下面的值綁定到下拉列表中。如何在Angularjs的dropdownboxlist中設置值?

<select ng-model="user.Nationality" 
     name="nationality" 
     id="Nationality" 
     ng-options="user.Nationality for user in nationalityList" 
     required> 
    <option value="" label="Nationality">Nationality</option> 
</select> 

第二種情況是在頁面加載之前選擇的數據我想要綁定,如果存在。如果某些用途已有數據的國籍,例如,如果用戶之前選擇國籍爲印度,那麼在頁面加載時,我只想將印度綁定到Dropdown。 下面是我的對象在api調用中接收。

"NationalitObj": 
{ 
     "ID":1, 
     "Nationality":"indian" 
}, 

現在我想爲上面的dropdoownboxlist設置國籍爲印度。

以下是我如何設置國籍的價值。

$scope.nationalityList = PersonalInfo.NationalitObj; 
$scope.user.Nationality = $scope.nationalityList.Nationality; 

這會導致錯誤無法設置屬性「國籍」未定義。我可以知道我該怎麼做?任何幫助,將不勝感激。

在此先感謝。

+0

使用在此之前$ scope.user.Nationality,聲明如$ scope.user = []; – Gopalakrishnan

+0

看看承諾,如果你想第二個在第一個之後執行。 $ q.when可以成爲您的解決方案 –

+0

謝謝。沒有解決。 –

回答

1

參見本:

angular.module("app",[]) 
 
    .controller("ctrl",['$scope',function($scope){ 
 
    $scope.nationalityList = [ 
 
     {Id:1, Nationality:'Indian'}, 
 
     {id:2, Nationality:'American'} 
 
    ]  
 
    $scope.user = {}; 
 
    $scope.user.Nationality = $scope.nationalityList[0].Id; 
 
    }])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<html> 
 
<body ng-app="app" ng-controller="ctrl"> 
 
<select ng-model="user.Nationality" 
 
     name="nationality" 
 
     id="Nationality" 
 
     ng-options="user.Id as user.Nationality for user in nationalityList" 
 
     required> 
 
    <option value="" label="Nationality">Nationality</option> 
 
</select> 
 
</body> 
 
<html>

+0

如果api返回「NationalitObj」:{「ID」:1,「國籍」:「印度人」}那麼我應該在上面的代碼中改變什麼? –

+0

$ scope.user.Nationality = $ scope.NationalitObj.Id;像這樣分配 – Jenny

+0

$ scope.user = {}; $ scope.user.Nationality = PersonalInfo.NationalitObj.ID;這應該是正確的? –

相關問題