我想清楚地解释一下我的问题。
$http.get('arealist.json').success(function(response){
angular.forEach(response, function(data){
$scope.arealist = data.area_name;
console.log($scope.arealist);
});
});
使用上面的代码从arealist.json获取area_name。
它在控制台中看起来像下面的图像。
但我需要在数组中存储上面的数据,它看起来像下面
$scope.arealist = [
"Avadi",
"Poonamallee",
"Padi",
"Ambattur Industrial Estat",
"Annanagar",
"Arumbakkam",
"Kodambakkam",
"Nandanam"
]
我该怎么做?
答案 0 :(得分:3)
声明如下变量。
var arealistArray=[];
$scope.arealist=[];
然后将值推入数组。
angular.forEach(response, function(data){
arealistArray.push(data.area_name);
});
最后将数组分配给范围变量。
$scope.arealist=arealistArray;
答案 1 :(得分:1)
使用数组:
$scope.arealist = [];
$http.get('arealist.json').success(function(response){
angular.forEach(response, function(data){
$scope.arealist.push(data.area_name);
console.log($scope.arealist);
});
});
答案 2 :(得分:1)
看起来您正在控制器中执行此请求(因为$scope
可用)?首先,你应该在服务中做这样的请求。例如:
angular
.module(/*module name*/)
.service('AreaService', function ($http) {
// Map the array of area objects to an array
// of each area object's `area_name` property
this.getAreas = function () {
return $http
.get('arealist.json')
.then(function (response) {
return response.data.map(function (data) {
return data.area_name;
});
});
};
})
然后在控制器中使用该服务:
.controller(/*controller name*/, function (AreaService) {
AreaService.getAreas().then(function (areas) {
$scope.arealist = areas;
});
});
答案 3 :(得分:0)
您可以使用Array.prototype.map()来实现此目的。
userData
如果您使用的是underscore.js或lodash等库,请使用_.map()获得相同的结果。
$scope.arealist = [];
$http.get('arealist.json').success(function (response) {
$scope.arealist = response.map(function (data) {
return data.area_name;
});
});