zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    路由懒加载的实现
    vue中的tab栏切换内容变换
    H5页面的高度宽度100%
    vue中的路由的跳转的参数
    xxxx-xx-xx的时间的加减
    sql server 2008 R2 备份还原到sql 2012
    eval方法将字符串转换成json对象
    CSS3 圆角(border-radius)
    [Easyui
    JavaScript slice() 方法
  • 原文地址:https://www.cnblogs.com/luckyflower/p/4140216.html
Copyright © 2011-2022 走看看