angularJS factory中包含xhr时,通过promise获取结果

 1 angular.module('shopping', []).
 2   factory('shoppingData',function($http, $q){
 3     return{
 4       apiPath:'/api/shoppingCart/',
 5       getAllItems: function(){
 6         //Creating a deferred object
 7         var deferred = $q.defer();
 8 
 9         //Calling Web API to fetch shopping cart items
10         $http.get(this.apiPath).success(function(data){
11           //Passing data to deferred's resolve function on successful completion
12           deferred.resolve(data);
13       }).error(function(){
14 
15         //Sending a friendly error message in case of failure
16         deferred.reject("An error occured while fetching items");
17       });
18 
19       //Returning the promise object
20       return deferred.promise;
21     }
22   }
23 }
24 
25 Following is the controller consuming the above custom service: 
26 function ShoppingCartCtrl($scope, shoppingData) {
27   $scope.items = [];
28 
29   function refreshItems(){
30     shoppingData.getAllItems().then(function(data){
31       $scope.items = data;
32     },
33     function(errorMessage){
34       $scope.error=errorMessage;
35     });
36   };
37 
38   refreshItems();
39 };

详见:http://sravi-kiran.blogspot.com/2013/03/MovingAjaxCallsToACustomServiceInAngularJS.html

转载于:https://www.cnblogs.com/luckyflower/p/4140216.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值