UseAllFive / angular-contentful-service

A contentful.js wrapper for Angular w/ request caching
https://goo.gl/j58FoJ
MIT License
16 stars 2 forks source link

Reload service? #1

Open eyesurewould opened 6 years ago

eyesurewould commented 6 years ago

I'm using your angular-contentful-service and I find it really simple for basic retrieval. However, in a slightly more complex app, I retrieve a single Entry (via the getEntry function) using a url param defined in my routes but can't get fresh data as I navigate around. Here is how I define the route so you can see that "id" is a param.

export const appRoutes: Routes = [ { path: "project/:id", component: ProjectDetailComponent, runGuardsAndResolvers: 'paramsChange' }

When I navigate to a different "project" (meaning the route is updated to replace the "id" param), a call is made to the getEntry function again with the new id but the Entry content is never updated (so no call is made out to Contentful's CDN which I can verify by watching network traffic).

If I manually refresh the page, I can see the network call out to Contentful and the response and then my page shows the updated content.

Is there a way to force a call to getEntry to load fresh data? Or do I need to somehow destroy the service (or my component) and reload it? I'd much rather use your service versus making raw HTTP curl calls.

Thanks

tommitieto commented 6 years ago

Service is caching calls with query parameters not with content id. That's why you are getting same response every time.

Maybe id should be included to cache key in getEntry function.