angularjs ng-options嵌套的json数据

时间:2017-01-30 12:10:00

标签: javascript angularjs json drop-down-menu ng-options

我正在使用AngularJS作为我的网络应用。我的目标是使用ng-options列出两个下拉列表。

  • 显示国家/地区列表的第一个下拉列表
  • 另一个提供所选国家/地区的语言首选项

作为AngularJS的新手,我能够显示数据,但整个对象显示为单个选项,我无法拆分每个数据。

请找到我用过的代码。

HTML

<select ng-model="selectedRegion" ng-options="region.countryName for region in eyebrow.regionSelector"></select>
<select ng-model="selectedRegion.selectLang" ng-options= "selectedRegion.selectLang for region in selectedRegion track by selectedRegion.countryName"></select>

JS:

angular.module ('appngOption')
.controller ('headerController', function($scope) {
  $scope.eyebrow = { regionSelector: [
  {
     "id": 1,
     "countryName": "Belgium",
     "selectLang": ["Dutch", "English", "French"]
  },{
     "id": 2,
     "countryName": "France",
     "selectLang": ["English", "French"]
  }]}
});

示例:选择比利时时,荷兰语,英语和法语应该是每个单独的下拉选项。 &安培;选择法国时,英语和法语应该是每个单独的下拉选项。

请仔细检查代码,如果我错过了什么,请告诉我。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我修复了代码中的一些问题。

JSFiddle demo

第一个输入是正确的:

<select ng-model="selectedRegion" ng-options="region.countryName for region in eyebrow.regionSelector"></select>

但是在第二次,我改变了几件事:

  • ng-model设置为另一个变量(selectLang),它更干净。
  • ng-options遍历selectedRegion.regionSelector,而不只是selectedRegion。那是你的主要错误:

<select ng-model="selectLang" ng-options="lang for lang in selectedRegion.selectLang"></select>