我可能會嘗試一些不應該的東西。 還沒有把我的頭圍繞整個「單身」的東西。離子工廠返回空物體
事情是,我有一個支持從API獲取一些json數據的工廠。 我收到了一個從工廠返回的空對象。
任何幫助,非常感謝。
.factory('specialities', function($http){
var specialities = [];
return {
getspecialities: function(){
$http({
method: 'GET',
url: "https://mydomain.abc/Api/specialities",
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(function successCallback(response) {
specialities = response.data.list;
}, function errorCallback(response) {
});
return specialities;
}
}
})
這是我的控制器。
.controller('loadingCtrl', ['$scope', '$stateParams', 'specialities', 'areas', '$timeout',
function ($scope, $stateParams, specialities, areas, $timeout) {
$scope.specialities = specialities.getspecialities();
$scope.areas = areas.getareas();
//console.log($scope.areas);
$scope.slide = function(){
console.log($scope.specialities);
console.log($scope.areas);
}
$timeout($scope.slide, 5000);
}])
我得到的只是在控制檯中的空數組,甚至在超時之後。 請幫忙。
謝謝
----編輯 我想下面的代碼。 控制器
.controller('loadingCtrl', ['$scope', '$stateParams', 'specialities', '$timeout', '$state',
function ($scope, $stateParams, specialities, $timeout, $state) {
specialities.getspecialities().then(function(specialities)
{
$scope.specialities = specialities;
console.log($scope.specialities);
});
}])
廠
.factory('specialities', function($http, $q){
return {
getspecialities: function(){
return $http({
method: 'GET',
url: "https://mydomain.abc/Api/specialities",
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(function successCallback(response) {
return response.data.list;
});
}
}
})
現在控制檯從未記錄和工廠似乎不叫稱呼是因爲API網址不叫。
我試了一下代碼。但似乎工廠的功能沒有被調用。我已更新我的答案以反映您的建議。 –
添加更多日誌以查看是否執行了哪些代碼路徑。很有可能你的'$ http'調用返回一個錯誤(在每個'then'中添加第二個函數並記錄在那裏檢查)。 – jcaron
我很興奮,我其實並沒有改變域名。哈哈。現在正在工作。感謝您的幫助。 –