AngularJSを使用してデータベースからデータをロードしようとしています。 データを取得するサービスとそれを使用するコントローラがあります。AngularJSサービスが約束を返さない
は、以下の私のコードを参照してください:
angular.module('myApp')
.factory('panelService', ['$http', function ($http) {
return {
async: function() {
return $http.get('/test'); // this returns promise
}
};
}]);
angular.module('myApp')
.controller('panelCtrl', ['$scope', '$http', function ($scope, $http) {
var promise = panelService.async()
promise.then(
function(payload){
$scope.user = payload.data;
}
)
}]);
を残念ながら、これは動作しません。データはロードされず、ブラウザにJSONオブジェクトが到着することはありません。しかし、panelService.async()
を私のコントローラの$http.get('/test')
と置き換えると正常に動作します。だから私の推測では、私のサービスにエラーがあったり、適切に呼び出されていないということです。