繁体   English   中英

ng-options遍历对象内的对象数组?

[英]ng-options loop through an array of objects within an object?

我有这个对象格式

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

我想在选择下拉列表中设置地址位,例如“ 1 Baker Street”,“ 2 Baker Street”,

这是我的代码

<!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遍历对象的方法。 有什么帮助吗?

您必须调用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> 

检查一下:

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

您还可以将默认的selectedItem设置为列表中的第一项

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

演示版

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM