我建議你在工廠編寫api調用,然後在需要數據的控制器中調用該服務。您也可以在多個控制器中調用相同的服務。
根據我的理解,我希望這是您的要求。如果沒有,請讓我知道,我會盡我所能。
您可以參考plunkr代碼 http://plnkr.co/edit/G9MkVMSQ4VjMw8g2svkT?p=preview
angular.module('mainModule', [])
.factory('apiCallService', ['$http', '$q', '$log',
function ($http, $q, $log) {
var instance = {};
var config = null;
instance.apiCallToServer = function (config) {
var deferred = $q.defer();
$http(config)
.success(function (data, status, header, config) {
deferred.resolve(data);
})
.error(function (data, status, header, config) {
deferred.reject(status);
});
return deferred.promise;
};
return instance;
}])
.controller('FirstCtrl', ["$scope", "$log", "$location", "apiCallService",
function ($scope, $log, $location, apiCallService) {
var config = {
method: "get",
url: "/path"
};
$scope.successCallback = function (data) {
$log.log("success.");
$scope.data = data;
//data will be stored in '$scope.data'.
};
$scope.failureCallback = function (status) {
$log.log("Error");
};
apiCallService
.apiCallToServer(config)
.then($scope.successCallback, $scope.failureCallback);
}]);
的
可能重複[如何返回從Ajax調用的響應?](http://stackoverflow.com/questions/14220321/how-to -return最響應從-AN-Ajax的呼叫) – raina77ow 2014-09-04 04:43:32