嗨,朋友我是初级角色并因使用>>> import os
>>> os.stat("b").st_ino
95905
>>> os.lstat("b").st_ino
96990
功能而陷入困境。我只想从angular.forEach()
文件中的嵌套数组调用数据。请检查下面的代码...... data.json
HTML
****I want to call data from --users-- key****
当前代码出现问题
在浏览器中运行我的代码时我只在
中的<div class="user-container" ng-controller="users"> <ul class="list"> <li ng-repeat="(key, value) in items"> {{key}} <p> {{value}} </li> </ul> </div>
中向<li>
提供ng-repeat
,然后在{{Key}}中,我在第一个0
中获得<li>
和第二1
<li>
并在{{value}}我在第一个
<li>
和第二个<li>
获取整个用户列表,他们没有数据
data.json
{
"data": {
"new": true,
"show_page": false,
"status": "signedin",
"users": [{
"Michele": {
"logo": "xyz.jpg",
"status": "active",
"active_since": 2015,
"order": 1
},
"Gerry": {
"logo": "xyz.jpg",
"status": "active",
"active_since": 2015,
"order": 1
}
}]
},
"success": true
}
Controller.js
var myApp = angular.module('app', []);
myApp.service('userData', ['$http', function($http){
return{
userslist : function(){
return $http({'url' : 'data.json', 'method' : 'GET'}).then(function(response){
return response.data;
}, function(data){
console.log(data)
})
}
}
}]);
myApp.controller('users', ['$scope', '$http', 'userData', function($scope, $http, userData){
userData.userslist().then(function(data){
//var provideDataKey = Object.keys(data.users)[0];
$scope.items = [];
angular.forEach(data, function(item){
//console.log(item.users);
$scope.items.push(item.users)
})
console.log($scope.items)
})
}]);
答案 0 :(得分:1)
response
是HTTP响应,包含正文(数据),标题等
所以response.data
是正文,如下所示:
{
"data": {
"new": true,
"show_page": false,
"status": "signedin",
"users": [{
"Michele": {
"logo": "xyz.jpg",
"status": "active",
"active_since": 2015,
"order": 1
},
"Gerry": {
"logo": "xyz.jpg",
"status": "active",
"active_since": 2015,
"order": 1
}
}]
},
"success": true
}
您想要访问此正文的users
字段的data
字段。所以你想要的是
userData.userslist().then(function(data){
$scope.items = data.data.users;
console.log($scope.items)
})
$范围。 items是一个数组,而不是一个对象。您想要显示此数组的元素。所以语法是:
{{user}}
您的JSON很糟糕,因为每个用户都是一个具有单个字段的对象,您无法知道该字段的名称。你最好把它改成
"users": [
{
"name": "Michele",
"logo": "xyz.jpg",
"status": "active",
"active_since": 2015,
"order": 1
},
{
"name": "Gerry",
"logo": "xyz.jpg",
"status": "active",
"active_since": 2015,
"order": 1
}
]
你可以这样做:
<li ng-repeat="user in items">
{{ user.name }}, active since {{ user.active_since }}.
答案 1 :(得分:0)
使用此
myApp.controller('users', ['$scope', '$http', 'userData', function($scope, $http, userData){
userData.userslist().then(function(data){
//var provideDataKey = Object.keys(data.users)[0];
$scope.items = [];
angular.forEach(data.users[0], function(item){
$scope.items.push(item);
})
console.log($scope.items)
})
}]);
你是在迭代数据而不是用户。