[英]How to get value of javascript array out of factory/services in angularjs
數組'chats'的范圍僅限於'.then',並且在'all'函數中將其值設置為null
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'返回的值...請提供一些建議...謝謝...
在從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);
},
};
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.