2017-04-12 158 views
0

我有這樣的對象格式ng-options循環遍歷一個對象內的對象數組?

{ 
     first_name : "Bob", 
     last_name : "Smith", 
     addresses : [ 
     {address:"1 Baker Street", 
      city: "london" 
     }, 
     {address:"2 Baker Street", 
      city: "london" 
     } 
     ] 
    } 

我想在選擇下拉即「1貝克街」,設置地址位,「2貝克街」,

這是我的代碼

<!DOCTYPE html> 
<html> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
<body> 

<div ng-app="myApp" ng-controller="myCtrl"> 

<select ng-model="selectedAddress" ng-options="item for item in testObject"> 
</select> 

</div> 

<script> 
var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    $scope.testObject =  { 
      first_name : "Bob", 
      last_name : "Smith", 
      addresses : [ 
      {address:"1 Baker Street", 
       city: "london" 
      }, 
      {address:"2 Baker Street", 
       city: "london" 
      } 
      ] 
     } 
}); 
</script> 

</body> 
</html> 

我正在努力讓我的腦袋圍繞如何使用AngularJS循環對象。任何幫助?

+0

您在HTML綁定中缺少testObject.addresses – LiverpoolOwen

回答

3

你必須調用數組的子對象和屬性。看看這個代碼。

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope) { 
 
    $scope.testObject =  { 
 
      first_name : "Bob", 
 
      last_name : "Smith", 
 
      addresses : [ 
 
      {address:"1 Baker Street", 
 
       city: "london" 
 
      }, 
 
      {address:"2 Baker Street", 
 
       city: "london" 
 
      } 
 
      ] 
 
     } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="myCtrl"> 
 

 
<select ng-model="selectedAddress" ng-options="item.address for item in testObject.addresses"> 
 
</select> 
 

 
</div>

1

檢查這一項:

<select ng-model="selectedItem" 
     ng-options="selectedItem as selectedItem.address  
        for selectedItem in testObject.addresses"> 
</select> 

您還可以設置默認列表selectedItem作爲第一個項目

$scope.selectedItem = $scope.testObject.addresses[0]; 

Demo