Ich benutze eine $ Ressource, um Daten vom Server zu erhalten, die einen ASP.NET MVC Controller von meinem Winkelcontroller aufrufen. Der Wert (des Typs Dezimal?) Wird korrekt vom MVC-Controller zurückgegeben, aber wenn das Versprechen aufgelöst wird, ist sein Parameter nur ein leeres Objekt und nicht der erwartete Wert.
$ Ressourcendatei:
angular
.module('app')
.service('datacontext', function ($rootScope, $resource) {
return {
emissions: $resource('/api/emissions/:id', { 'id': '@id', emissionId: '@emissionId' },
{
create: { method: 'POST' },
lock: { method: 'PUT', url: "/api/emissions/lock" },
getFxRate: { method: 'GET', isArray: false, url: '/api/emissions/getfxrate'}
})
}
ASP.NET MVC-Controller
[HttpGet]
[Route("/api/emissions/getfxrate")]
public async Task<IHttpActionResult> GetFxRate(string currency)
{
var res = await _emissionsAppService.GetFxRateAsync(currency);
//Here I get properly a decimal value as expected. (eg. 1.07123)
return Ok(res);
}
Winkelregler:
function getRate(currency){
datacontext.emissions.getFxRate({ currency: currency})
.$promise.then(function (result) {
//Here result is just an empty object {}
}
}
Ich kann nicht verstehen, was fehlt, um den Wert vom Server zum Client-Controller zurück zu bekommen.