私は想定されていないものを試しているかもしれません。 まだ「シングルトン」のことを頭で包んだことはありません。空のオブジェクトを返すIonic Factory
私は、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のURLが呼び出されていないためと呼ばれる呼び出されないことのようです。
私はコードを試しました。しかし、ファクトリの機能が呼び出されないようです。私はあなたの提案を反映するために私の答えを更新しました。 –
ログをさらに追加して、実行されるコードパスを確認します。あなたの '$ http'呼び出しはエラーを返す可能性があります(それぞれの' then'に2番目の関数を追加し、チェックのために何が起こるかをログに記録することが可能です)。 – jcaron
私は本当に興奮していたが、実際にドメイン名を変更しなかった。ハハ。それは今働いている。お手伝いありがとう。 –