我是角色的新手,并尝试将其集成到我的应用程序中。我试图使用简单的$http.get
到.JSON文件,这似乎是找到的,但是当试图将数据传递到前端,甚至提醒它时,它是否警告为[]
我的到达:
$scope.countries = [];
$http.get('/resources/data/countries-report.json', function(data){
$scope.countries = data;
}, function(error) {
//handle error here
});
alert(JSON.stringify($scope.countries));
这是我的.JSON文件:
{
"firstName" : "Joe",
"surName" : "Bloggs",
"countries" : [
{ "name": "France", "population": "63.1" },
{ "name": "Span", "population": "52.3" },
{ "name": "United Kingdom", "population": "61.8" }
]
}
答案 0 :(得分:2)
试试这个:
$scope.countries = [];
$http.get('/resources/data/countries-report.json', function(data){
$scope.countries = data;
alert(JSON.stringify($scope.countries));
}, function(error) {
//handle error here
});
警报应该进入回调。
答案 1 :(得分:2)
这应该这样做
$http.get('/resources/data/countries-report.json').success(function(data) {
$scope.countries = data;
alert(JSON.stringify($scope.countries));
}).error(function(error) {
alert('error');
});
此等效项也可以使用
$http.get('/resources/data/countries-report.json').then(function(data) {
$scope.countries = data;
alert(JSON.stringify($scope.countries));
}, function(error) {
alert('error');
});
编辑 -
而不是$ http.get(' / someUrl',sucessCallback,errorCallback)它应该是
$http.get('/someUrl').success(successCallback).error(errorCallback)
或
$http.get('/someUrl').then(successCallback, errorCallback)
因为$ http.get是异步警报应该在successCallback函数中移动,以确保在调用alert之前执行$scope.countries=data
。
答案 2 :(得分:1)
$ http.get是一个异步函数。当你尝试alert(JSON.stringify($scope.countries));
时,scope.countries等于[]。在使用数据之前,您必须等待服务器响应。
尝试对成功功能发出警报
$scope.countries = [];
$http.get('/resources/data/countries-report.json', function(data){
$scope.countries = data;
alert(JSON.stringify($scope.countries));
}, function(error) {
//handle error here
});