我想了解如何为多个控制器设计单个 ajax 方法,这也会影响用户界面(例如,“加载”动画)。
想法是(没有承诺):
var myApp = angular.module('myApp', []);
myApp.controller('myCtrl',
function myCtrl($scope, myFactory){
$scope.loading = false;
$scope.someStuff = myFactory.getStuff(params);
});
myApp.factory('myFactory', function(myService){
return{
getStuff: function(params){
return myService.ajax(params);
}
}
});
myApp.service('myService', function($http) {
this.ajax = function(params){
// switch $scope.loading = true;
// make request
// return $http result
// switch $scope.loading = false;
};
});
据我所知,我需要使用 $scope 进行 UI 更改,并且应该将 ajax-method 用于自定义服务。Angularjs 中的服务不适用于 $scope,我不知道如何解决这个问题。
我认为,必须有一个带有承诺链的服务。怎么设计?
更新:我希望随着时间的推移文档会更加完整和清晰。但是角度用户社区已经很棒了。谢谢。