2017-08-07 91 views
0

我试图通过使用ng-repeat在ng视图中获取items._id值。 发生所有数据,但我想要特定的数据。如何通过在angularjs中使用ng重复获取嵌套的JSON数据

data.json

[ { _id  : "td6v9db4514cc4ewew4334", 
    firstName : 'ayaz', 
    lastName : 'memon', 
    items  : '[{"_id":"item2","_name":"My Item #4"}, 
        {"_id":"item3","_name":"My Item #4"}]', 
    totalItems : 3, 
    totalPrice : 2999.97 } ] 

控制器

app.controller('myCtrl', function($scope, $http) { 
    $http.get("data.json").then((response) => { 
    console.log(response.data) 

    $scope.userInfo = response.data 
    }) 
}) 

纳克视图

<body ng-app="myApp"> 

<div ng-controller="myCtrl"> 
<ul ng-repeat="x in userInfo"> 
    <li >{{x}}</li> 

</ul> 

+1

'ng-repeat =“x.items中的项”'将返回每个项目 – Abinthaha

+1

您将不得不使用嵌套的'ng-repeat'。 – Rajesh

+0

您显示的数据不是有效的JSON。在JSON中的键必须被'''包围。 –

回答

0

尝试此,

[{ 
    "_id": "td6v9db4514cc4ewew4334", 
    "firstName": "ayaz", 
    "lastName": "memon", 
    "items": [{ 
      "_id": "item2", 
      "_name": "My Item #4" 
     }, 
     { 
      "_id": "item3", 
      "_name": "My Item #4" 
     } 
    ], 
    "totalItems": 3, 
    "totalPrice": 2999.97 
}] 

你可以在ng-repeat =“itemIn userInfo.items”和{{item._id}}中的项目中获得重复的“_id”。

如果有任何错误,请纠正我,我还是新的。 谢谢。

+0

这是如何:'“项目”:{“_id”:“item2”,“_ name “:”我的物品#4“}, {”_id“:”item3“,”_ name“:”我的物品#4“},'有效的JSON? – Rajesh

+0

@Rajesh你是对的,我忽略了它。 –

+0

当你在你的答案中改变某些东西时,请检查它的其余部分是否与更新同步。指向*这不是一个嵌套的JSON。* – Rajesh

0

尝试使用嵌套NG-重复这样的:

<ul ng-repeat="user in userInfo"> 
    <li ng-repeat="x in user.items">{{x._id}} : {{x._name}}</li> 
</ul> 

我假设你的HTTP调用将返回一个有效的反应,因为你给了JSON数据是无效的。钥匙必须放在“”内。我也构成了对NG-重复假设你的反应将有多个对象

+0

没有任何东西出现 –

1

在这里,您正在使用嵌套的JSON对象即用户信息的项目,你可以写NG-重复的,

<body ng-app="myApp"> 
<div ng-controller="myCtrl"> 
<ul> 
    <li ng-repeat="x in userInfo.items">{{x._id}}</li> 
</ul> 

注:这将是很好的,如果你在使用<li></li> NG-重复,而不是<ul></ul>

+0

只是一个小问题,'userInfo'是一个对象数组而不是对象。 – Rajesh

+0

是的我同意你的意见,但它的数组中的单个元素,所以我们可以使用像userInfo [0] –

+0

或者它只是一个样本输入和实际数据由* n *对象组成。 – Rajesh

0

这是为我工作的理解:

<ul> 
    <li ng-repeat="user in userInfo"> 
    <ul> 
     {{user._id}} 
     <li ng-repeat="item in user.items"> 
     {{item._id}} 
     </li> 
    </ul> 
    </li> 
</ul> 

Plunker例如: http://plnkr.co/edit/hzWdj2IiUI2RytYVUI7m?p=preview

+0

[1]:https://i.stack.imgur.com/hzIu4.png –

+0

东西你的JSON数据有问题,你可以在我的Plunker例子中看到,我已经使用了与你的相同的对象,并且它工作。 –

+0

您忘记在括号**项目前添加单引号:'[{....}]'** –

0

我试图检索字符串作为一个对象是一个错误。我使用了对象数据而不是字符串并得到了结果。