我是一個新手,角度不夠強,而且在JavaScript中不太強大。我正在嘗試使用離子框架來製作應用程序。即時通訊嘗試從json文件中獲取列表。我已經成功地使用了變量中的原始json。但我現在試圖使用$http.get()
從我的項目文件夾中的遠程文件中檢索它。
.service('staffServices', ['$q', '$http', staffService]);
function staffService($q, $http) {
var staffs = {};
var promise = $http.get("/js/jsons/settings.json")
.success(function(response) {
staffs = response.staffSettings;
console.log(staffs); //HAS WHAT I NEED
});
console.log(staffs); //EMPTY OBJECT
return {
loadAllSettings: function() {
return $q.when(staffs);
},
query: function (params) {
return filterFilter(staffs, params);
},
get: function (params) {
return this.query(params)[0];
}
}
};
出於某種原因,我不能.success()
功能的外部訪問的結果。我不確定這是否是由於我對javascript或我的新手狀態的無知。請幫助我
這是我的控制器下面。 self.settings
永遠不會被填充,總是返回一個空的對象
.controller("staffCtrl", function (staffServices) {
var self = this;
self.settings = [];
staffServices.loadAllSettings()
.then(function (settings) {
self.settings = [].concat(settings);
console.log(settings);
});
});
您的代碼按預期工作。最後的日誌發生在promise被調用之前,所以對象仍然是空的。但是你的返回函數應該正確地處理響應數據(loadAllSettings,query) – Karmacon
是的,我知道。但事實並非如此。沒有任何東西會在控制器上返回。我已經更新了問題以顯示我的控制器。 @karna –