Angularjs-多个json数组工作不正常
我有一个小应用程序,请求使用一级json时可以正常工作的json文件,代码如下: 服务:Angularjs-多个json数组工作不正常,json,angularjs,Json,Angularjs,我有一个小应用程序,请求使用一级json时可以正常工作的json文件,代码如下: 服务: angular .module ('myApp') .factory('Summary', function ($resource) { return $resource('summary.json'); }); 控制器: angular .module ('myApp') .controller ('summaryCtrl', ['$scope',
angular
.module ('myApp')
.factory('Summary', function ($resource) {
return $resource('summary.json');
});
控制器:
angular
.module ('myApp')
.controller ('summaryCtrl', ['$scope', 'poller','Summary', function ($scope, poller,Summary) {
var poller1;
//using angular-poller
poller1 = poller.get(Summary, {delay: 2000});
poller1.promise.then(null, null, function (data) {
$scope.summary = data;
console.log(data);
});
}]);
angular
.module ('myApp')
.controller ('summaryCtrl', ['$scope', 'poller','Summary', function ($scope, poller,Summary) {
var poller1;
poller1 = poller.get(Summary, {delay: 2000});
poller1.promise.then(null, null, function (data) {
$scope.summary = data.uk; //here I need to get uk data
console.log(data.uk);
});
}]);
json:
控制台中的输出:
[Resource, Resource, Resource, Resource, Resource, Resource, $promise: Object, $resolved: true]
所有这些都很好,因为我获得了6x资源,只要我引入多级json并修改控制器,它就不能正常工作,下面是我试图检索uk的新代码:
新json:
[
{
"uk": [
{"channel": "aaa", "value": 13256},
{"channel": "bbb", "value": 6598},
{"channel": "ccc", "value": 245 },
{"channel": "ddd", "value": 123},
{ "channel": "eee", "value": 956},
{ "channel": "fff", "value": 142}
]
},
{
"us": [
{"channel": "aaa", "value": 457},
{"channel": "bbb", "value": 364},
{"channel": "ccc", "value": 457 },
{"channel": "ddd", "value": 45},
{ "channel": "eee", "value": 3},
{ "channel": "fff", "value": 143562}
]
}
]
控制器:
angular
.module ('myApp')
.controller ('summaryCtrl', ['$scope', 'poller','Summary', function ($scope, poller,Summary) {
var poller1;
//using angular-poller
poller1 = poller.get(Summary, {delay: 2000});
poller1.promise.then(null, null, function (data) {
$scope.summary = data;
console.log(data);
});
}]);
angular
.module ('myApp')
.controller ('summaryCtrl', ['$scope', 'poller','Summary', function ($scope, poller,Summary) {
var poller1;
poller1 = poller.get(Summary, {delay: 2000});
poller1.promise.then(null, null, function (data) {
$scope.summary = data.uk; //here I need to get uk data
console.log(data.uk);
});
}]);
控制台中的输出未定义
我做错了什么?非常感谢您的帮助。更改json的格式,如下所示:
{
"uk": [
{"channel": "aaa", "value": 13256},
{"channel": "bbb", "value": 6598},
{"channel": "ccc", "value": 245 },
{"channel": "ddd", "value": 123},
{ "channel": "eee", "value": 956},
{ "channel": "fff", "value": 142}
],
"us": [
{"channel": "aaa", "value": 457},
{"channel": "bbb", "value": 364},
{"channel": "ccc", "value": 457 },
{"channel": "ddd", "value": 45},
{ "channel": "eee", "value": 3},
{ "channel": "fff", "value": 143562}
]
}
然后data.uk和data.us将生成所需的结果。数据是一个数组。你必须做数据[0]。ukOh哇,愚蠢的我:非常感谢你的帮助。但是,如果数据是正确的json格式/对象而不是数组,我的代码会是什么样子?它仍然是正确的json,您只需删除周围的[and]。所以它看起来像{uk:[]}而不是[{uk:[]}]我尝试过删除[],所以它看起来像{uk:[]},{us:[]}但是我的IDE认为它们之间有一个逗号错误:哦,我明白了。很抱歉让我写一个答案。太棒了,我所要做的就是修改工厂,如下所示:return$resource'summary.json',{},{'query':{method'GET',isArray:false};再次感谢!