如何在angularjs中从工厂/服务中获取javascript数组的价值
数组“chats”的作用域仅限于“.then”,并在“all”函数中为其值null如何在angularjs中从工厂/服务中获取javascript数组的价值,javascript,php,angularjs,ionic-framework,Javascript,Php,Angularjs,Ionic Framework,数组“chats”的作用域仅限于“.then”,并在“all”函数中为其值null angular.module('starter.services', []) .factory('Chats', function($http) { var chats=[]; result = ""; $http.get('http://localhost/Finalvts/AndroidData/GetDailySchedule.php') .success
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);
},
};
});
数组chats在控制台中不显示变量“data”返回的值…请给出一些建议。。。谢谢您…您在从http请求获取数据之前返回聊天记录。这是因为
$http.get
是异步的,获取数据需要一定的时间。在获取数据时,您将返回当前具有[]
的聊天数据。尝试在中返回数据。然后()
。像这样的
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);
},
};
});
});
可能重复的