Angular js工厂使用asp.net webApi

时间:2013-08-07 00:22:13

标签: angularjs asp.net-web-api

如何在角度js工厂中使用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 / shop / warranty / get / us / en / abc / 19 / productA / abc-123 HTTP / 1.1

2 个答案:

答案 0 :(得分:1)

Angular Resource模块是使用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操作将自动添加到您的保修对象中。 有关详细信息,请访问ngResource Documentation

答案 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;
  });
}