2013-08-07 70 views
0

如何在角度js工廠消費webApi?角度js工廠消費asp.net webApi

的WebAPI

public class WarrantyController: ApiController { 
    public WarrantyViewModel Get(string c, string l, string s, string cs, string productcode, string ordercode, string overrides) { 
     var response = Query(new WarrantyQuery(UserContext.CreateContext(c, l, s, cs), productcode, ordercode, overrides)); 
     return response.Data; 
    } 
} 

這個返回JSON結果:

GET/API /店/保修/得/美國/ EN/ABC/19 /產品A/ABC-123 HTTP/1.1

回答

0

與使用任何API進行通信的方式相同,請使用$http服務。

有了這個,你得到HTTP動詞簡寫:

// Returns a promise with warranty list as a resolved parameter 
function getWarranties() { 
    return $get('/api/warranty').then(function(resp) { 
    return resp.data; 
    }); 
} 

或者你也可以使用原始$http方法:

// Returns a promise with warranty list as a resolved parameter 
function getWarranties() { 
    return $http({ 
    url: '/api/warranty', 
    method: 'get', 
    // other options... 
    }).then(function(resp) { 
     return resp.data; 
    }); 
} 
1

角資源模塊是一個非常好的幫手消耗的REST API。

您可以創建一個工廠,如:

angular.module('appService', ['ngResource']) 
    .factory('Warranty', function($resource) { 
     return $resource('/api/warranty/'); 
    }); 

然後,你的工廠注入到你的角度應用程序,如下圖所示:

var app = angular.module('app', ['appService']); 

最後,你可以在你的控制器訪問你的工廠:

app.controller('warrantyController', function($scope, Warranty) { 
    $scope.warranties = Warranty.query(); 
}); 

所有其他CRUD操作將自動添加到您的保修ob JECT。 欲瞭解更多信息,您可以訪問ngResource Documentation