【发布时间】:2016-09-25 06:52:47
【问题描述】:
我正在开发一个应用程序来读取 JSON 文件。
目前我能够检索和读取 JSON 文件,但问题是何时选择 JSON 中的数据。
错误“无法读取未定义的属性‘长度’”
下面是我的代码。
Services.js
.factory("mainData", function($http, $log, $q) {
var chartData;
return {
all: function() {
var d = $q.defer();
$http({ method: 'GET',
url: 'http://localhost:8080/aZolla/getGlazCharts.do'})
.success(function (data, status, header, config) {
d.resolve(data);
})
.error(function (data, status, header, config) {
$log.warn(data, status, header, config);
});
chartData = d.promise;
return d.promise;
},
get: function(chartID) {
for (var i = 0; i < chartData.length; i++) {
if (chartData[i].id === parseInt(chartID)) {
return chartData[i];
}
}
return null;
}
};
});
Controller.js
.controller("ChartsListsCtrl", function($scope, mainData) {
mainData.all().then(function(data){
$scope.chartLists = data;
}
)
.controller('ChartsCtrl', function($scope, $stateParams, mainData) {
$scope.chart = mainData.get($stateParams.chartId);
})
【问题讨论】:
-
你同时加载两个控制器?这看起来像是一个异步问题。
-
在get函数执行过程中检查chartData是否包含预期的数据。