2017-04-12 13 views
0

私はこれが私のコードng-optionsは、オブジェクト内のオブジェクトの配列をループしますか?

<!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> 
ある

、私は選択のドロップダウンすなわち「1ベーカーストリート」、「2ベーカーストリート」のアドレス・ビットを設定したいこのオブジェクト形式

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

を持っています

私は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

チェックこの1:リストではあなたはまた、第一項目としてデフォルトselectedItemを設定することができます

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

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

Demo

関連する問題