2017-04-12 155 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