2016-02-14 51 views
0

我使用的WebAPI,并产生使用的EntityFramework的GET(INT ID)的重载方法模型我想,使用的$resource

我试图通过查询来电使用可选的参数来调用该$resource但得到我有一个谷歌和人说加

{ 
    'get': {method: 'GET'}, 
    'query': {method: 'GET', isArray: true} 
} 

到函数,所以我已经试过这个错误[$resource:badcfg]:但仍没有运气。

function minorResource($resource, appSettings) { 
    return $resource(appSettings.serverPath + "/api/minorworks/:id", 
     { 
      'get': {method: 'GET'}, 
      'query': {method: 'GET', isArray: true} 
     }); 
} 

您会使用2个独立的方法还是可以使上述功能工作?

对于completness这里是我的电话控制器

minorResource.query({id: vm.seachCriteria}, function (data) { 
     //console.log(data); 
     vm.minorWork = data; 
    }); 

回答

0

注意查询用于检索对象的阵列并获得用于检索对象。这意味着,通常情况下,您通常会将对象的ID发送给API。

你的情况

所以:

var minorWorksResource = $resource(appSettings.serverPath + "/api/minorworks/:id"); 
// Note that query returns an array. 
var works = minorWorksResource.query(function() { 
    var firstWork = works[0]; 
}); 
// Note that we pass an ID that will be fetched in the query string. 
var singleWork = minorWorksResource.get({id: 123}, function() { 

}); 

而且部分的WebAPI:

[RoutePrefix("api/minorworks")] 
public class MinorWorksController : ApiController { 
    public IHttpActionResult Get(int id) { 
     var singleWork = null; 
     // Retrieve a single item; 
     return Ok(singleWork); 
    } 

    public IHttpActionResult Get() { 
     var workList = null; 
     // Retrieve the whole list. 
     return Ok(workList); 
    } 
}