- From: Dave Longley <dlongley@digitalbazaar.com>
- Date: Wed, 18 Jun 2014 19:10:12 -0400
- To: public-linked-json@w3.org
- CC: tomasz@t-code.pl
On 06/18/2014 05:20 PM, Tomasz Pluskiewicz wrote:
> Hi
>
> I'm trying to use the jsonld with Angular and in tests I want to
> replace the default documentLoader with $http service so that I can
> mock the responses.
>
> I assumed that because $http already returns a promise it would be
> enough to simply use a function like
>
> jsonld.documentLoader = function (url) {
> return $http.get(url);
> }
>
> as replacement for whatever is currently set.
>
> Unfortunately it doesn't work. What's would be correct way to do that?
That's because the value that promise resolves to isn't what is required
by the JSON-LD API spec. It requires that the promise resolve to a
"RemoteDocument":
http://www.w3.org/TR/json-ld-api/#idl-def-RemoteDocument
I didn't test this, but it should be pretty close to what you want:
jsonld.documentLoader = function(url) {
return $http.get(url).then(function(response) {
return {
contextUrl: null,
document: response.data,
documentUrl: url
}
});
};
Hopefully that works for you.
-Dave
--
Dave Longley
CTO
Digital Bazaar, Inc.
Received on Wednesday, 18 June 2014 23:10:40 UTC