2017-04-12 3 views
0

나는이 개체의 형식을 가지고이 내 코드입니다ng-options 객체 내의 객체 배열을 반복합니까?

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

내가 즉, "1 베이커 스트리트 (Baker Street)"드롭 다운 선택에 주소 비트를 설정하려면, "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.address가 누락되었습니다. – LiverpoolOwen

답변

3

array 및 하위 속성의 자식 개체를 호출해야합니다. 이 코드를보십시오.

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 1 번째 항목

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

Demo