数组'聊天'的范围仅限于'.then'并且在'all'函数中将其值赋值为
angular.module('starter.services', [])
.factory('Chats', function($http) {
var chats=[];
result = "";
$http.get('http://localhost/Finalvts/AndroidData/GetDailySchedule.php')
.success(function(data, status, headers,config){
console.log('data success');
console.log(data); // for browser console
var i=0;
data.forEach(function (x) {
x['id']=i;
i++;
})
chats = data; // for UI
console.log(chats);
})
.error(function(data, status, headers,config){
console.log('data error');
})
.then(function(result){
chats = result.data;
console.log(chats);
});
return {
all: function() {
console.log(chats);
return chats;
},
remove: function(chat) {
chats.splice(chats.indexOf(chat), 1);
},
};
});
数组聊天没有显示控制台中变量'data'返回的值...请给出一些建议......谢谢......
答案 0 :(得分:0)
在从http请求获取数据之前返回聊天。这是因为$http.get
是异步的,需要一定的时间来获取数据。在获取数据时,您将返回当前具有[]
的聊天数据。尝试在.then()
中返回数据。像这样的东西
angular.module('starter.services', [])
.factory('Chats', function($http) {
var chats = [];
result = "";
$http.get('http://localhost/Finalvts/AndroidData/GetDailySchedule.php')
.success(function(data, status, headers, config) {
console.log('data success');
console.log(data); // for browser console
var i = 0;
data.forEach(function(x) {
x['id'] = i;
i++;
})
chats = data; // for UI
console.log(chats);
})
.error(function(data, status, headers, config) {
console.log('data error');
})
.then(function(result) {
chats = result.data;
console.log(chats);
return {
all: function() {
console.log(chats);
return chats;
},
remove: function(chat) {
chats.splice(chats.indexOf(chat), 1);
},
};
});
});