我dataStore.find()
每次都用相同的参数调用。当前的适配器是HttpAdapter
. 但是,在初次调用之后,它似乎无法在缓存中找到数据并再次调用 API。即使数据实际上正在缓存中,也会发生这种情况,js-data 似乎无法找到它:
问问题
55 次
1 回答
1
我从 API 返回的数据不包含id
属性。当 js-data 在调用 后查看缓存时dataStore.find()
,它会查找匹配的项目idAttribute
,这是id
默认情况下的。因此,每次请求数据时,都会将其添加到缓存中,但无法在后面找到。idAttribute
为了解决这个问题,我在我的映射器中添加了适当的:
this.mapper = this.dataStore.defineMapper('community', {
schema: this.communitySchema,
endpoint: 'cm',
// We don't have an 'id' property so the cached records won't be found.
// Thus, we set the 'idAttribute' to 'code', which is the unique identifier
// for communities.
idAttribute: 'code'
});
于 2017-10-31T23:24:54.297 回答