Javascript 在方法中看不到对象数组。(angularjs)
对不起我的英语Javascript 在方法中看不到对象数组。(angularjs),javascript,angularjs,Javascript,Angularjs,对不起我的英语 chill.controller('messagesController', function($scope, $http, $rootScope, $location, $stateParams, $ionicSlideBoxDelegate, $ionicLoading) { if ($rootScope.userData != undefined) { $ionicLoading.show({ template: 'loading' })
chill.controller('messagesController', function($scope, $http, $rootScope, $location, $stateParams, $ionicSlideBoxDelegate, $ionicLoading) {
if ($rootScope.userData != undefined) {
$ionicLoading.show({
template: 'loading'
})
$http.get('http://api.getchill.co/api/v1/messages/index/id_user/'+$rootScope.userData.id_user+'/id_contact/'+$stateParams.id)
.success(function(data) {
$scope.messages = data;
for (var i = 0; i < $scope.messages.response.length; ++i) {
if ($scope.messages.response[i].type == 'location') {
var strings = $scope.messages.response[i].content.split(' ');
var lat1 = strings[0], lat2 = strings[1];
$http.get('http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat1+','+lat2+'&sensor=false')
.success(function(data) {
$ionicLoading.hide();
$scope.messages.response[i].address = data.results[0].formatted_address;
});
};
};
$ionicSlideBoxDelegate.update();
});
}
else
{
$location.path('/login');
};
console.log(数据):_https://dl.dropboxusercontent.com/u/99426050/ShareX/2015/01/2015-01-29_23-40-29.png这里的问题是调用success函数时,
i
的值发生了变化i
现在是数组的长度(因为for循环已经结束)$scope.messages.response[i]
返回undefined,因为您要求在最后一个索引之后的索引处输入一个值。这是由于的行为
我可以帮你
chill.controller('messagesController', function($scope, $http, $rootScope, $location, $stateParams, $ionicSlideBoxDelegate, $ionicLoading) {
if ($rootScope.userData != undefined) {
$ionicLoading.show({
template: 'loading'
})
$http.get('http://api.getchill.co/api/v1/messages/index/id_user/'+$rootScope.userData.id_user+'/id_contact/'+$stateParams.id)
.success(function(data) {
$scope.messages = data;
angular.forEach($scope.messages.response, function(response, i){
if (response.type == 'location') {
var strings = response.content.split(' ');
var lat1 = strings[0], lat2 = strings[1];
$http.get('http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat1+','+lat2+'&sensor=false')
.success(function(data) {
$ionicLoading.hide();
response.address = data.results[0].formatted_address;
});
};
});
$ionicSlideBoxDelegate.update();
});
}
else
{
$location.path('/login');
};
});
是地址不可见还是地址“未定义”的问题?请尝试
console.log(数据)在success函数中编写>并使用地址为“未定义”的详细信息更新问题
chill.controller('messagesController', function($scope, $http, $rootScope, $location, $stateParams, $ionicSlideBoxDelegate, $ionicLoading) {
if ($rootScope.userData != undefined) {
$ionicLoading.show({
template: 'loading'
})
$http.get('http://api.getchill.co/api/v1/messages/index/id_user/'+$rootScope.userData.id_user+'/id_contact/'+$stateParams.id)
.success(function(data) {
$scope.messages = data;
angular.forEach($scope.messages.response, function(response, i){
if (response.type == 'location') {
var strings = response.content.split(' ');
var lat1 = strings[0], lat2 = strings[1];
$http.get('http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat1+','+lat2+'&sensor=false')
.success(function(data) {
$ionicLoading.hide();
response.address = data.results[0].formatted_address;
});
};
});
$ionicSlideBoxDelegate.update();
});
}
else
{
$location.path('/login');
};
});