json嵌套的angularjs ng-repeat下拉菜单

时间:2016-10-17 21:12:15

标签: javascript angularjs json drop-down-menu

我有以下example.json文件:

[
  {
    "interests": [
      {
        "item": "art"
      },
      {
        "item": "literature"
      },
      {
        "item": "history"
      },
      {
        "item": "science"
      }
    ]
  },
  {
    "experience": [
      {
        "year": "novice"
      },
      {
        "year": "experienced"
      }
    ]
  }
]

在我的视图控制器中,我读了这样的文件:

app.controller('ProfileCtrl', ["$scope", "$state", "$http",
    function ($scope, $state, $http) {

    $http.get('files/example.json').success(function (data)
        {
            $scope.myjsonobj= data;
        });

在我的html视图中,我正在注入这样的值:

<div ng-controller="ProfileCtrl">
...
    <select class="form-control" ng-model="user.favs">
       <option ng-repeat="p in interests.myjsonobj" value="{{p.item}}">{{p.item}}</option>
    </select>

问题:

如何只展示&#34;兴趣&#34;的值列表?在我的下拉菜单中?如何在angularjs中访问嵌套的json数组?
我当前的设置无效。

2 个答案:

答案 0 :(得分:1)

假设'interest'是您的控制器短名称。

你可以使用:

<option ng-repeat="p in myjsonobj[0].interests" value="{{p.item}}">{{p.item}}</option>

理想情况下,您应该循环数据对象以使用'interest'键与hardcoding [0]查找索引。

更新:删除了“兴趣”。从重复。好像你没有ctrl短名称绑定。

答案 1 :(得分:0)

我不是一个有角色的人。但凭借我的javascript知识,我觉得

“interests.myjsonobj”

应该是

“myjsonobj.interests”