目前,我正在学习AngularJS。但是我现在已经因为这个问题而失去了几个小时。
我尝试通过ngResource从AngularJS调用WCF服务。我能够使用$ http,但不是通过ngResource。
服务非常简单:
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "flowers", ResponseFormat = WebMessageFormat.Json)]
List<BaseFlower> GetFlowers();
public class Service1 : IService1
{
public List<BaseFlower> GetFlowers()
{
var flowers = new List<BaseFlower>();
flowers.Add(new BaseFlower { Name = "Rose", Price = 1, BoughtOn = DateTime.Now });
flowers.Add(new BaseFlower { Name = "Lilly", Price = 2, BoughtOn = DateTime.Now });
flowers.Add(new BaseFlower { Name = "Heliconder", Price = 3, BoughtOn = DateTime.Now });
return flowers;
}
根据一些例子,我试图调用WCF服务,但没有运气,这里是AngularJs代码:
var ngFlower = angular.module("ngFlower", ['ngResource']);
ngFlower.factory("Flower", function ($resource) {
return {
flowerData: $resource('http://localhost:61585/Service1.svc/flowers')
}
});
ngFlower.controller("flowerCtrl", function ($scope, Flower) {
$scope.items = Flower.flowerData.query({});
DB = $scope.items;
});
由于我从$ http切换到“资源”,因此无法再访问WCF服务。
答案 0 :(得分:0)
我猜你的问题是$资源使用需要一个rest api后端。您的Web服务期待POST请求,并且您正在使用查询方法发送GET请求。
考虑使用ApiController
类