サービスを使用してローカルJSONファイルのhttpリクエストを作成しています。私は成功したHTTPリクエストからのデータをコントローラに保存しようとしていますが、その部分は動作していません。しかし、httpリクエストはサービス上で成功したようです。サービスでhttpリクエストを作成し、コントローラで応答を取得します
var myModule = angular.module("MyApp", [])
.controller('MyController', function(Utilities){
//this is not working
self.socialArr = Utilities.getData("data.json");
}).service('Utilities', function($http) {
var self = this;
self.getData = function(jsonData) {
$http.get(jsonData)
.then(function(response) {
//First function handles success
var theData = response.data;
console.log(theData); //this works (data is logged)
return theData;
}, function(response) {
//Second function handles error
console.log("Error loading JSON data");
});
};
});
[アンチパターン(http://stackoverflow.com/questions/23803743/:コントローラで
'$ http'がすでに約束を返すときには、何が明白な約束事なのか、それとも何とかすることを避けること) – charlietfl
いいえ、私はこのように約束されたhttpへのカスタム約束を作成します。作業。 – saiyan
いいえ私はhttpを返すという約束をこのようにして返しました。これはうまくいくでしょう。http呼び出しを行うために関数を使用するあなたのアプローチでは、上記の答えはhttp:// chariotsolutionsというinline.seeという約束でhttp呼び出しを行います。 com/blog/post/angularjs-corner-using-promises-q-handle-asynchronous-calls/**後処理について**セクション – saiyan