我试图了解当我使用findAll时如何强制余烬存储进行另一个api调用,而不是从缓存中获取记录。我知道记录是否已经加载,然后ember返回缓存的数据,除非要求跳过它。在做一些研究(博客,文档和堆栈溢出)时,人们建议对findAll使用reload:true标志,但对我不起作用。当我执行reload:true标志时,存储仍然会从缓存中返回数据。
如果我缺少任何物品,请帮助。
我拥有的代码:
fetchStudentData() {
this.get('store').findAll('student').then((response) => {
return response.data;
});
}
此功能绑定到一个按钮,因此单击后,我需要重新启动API调用。我替换了商店调用以供使用:
this.get('store').findAll('student', { reload: true }).then((response) => {
return response.data;
});
但这也无济于事,因为它仍然向我返回了存储缓存中的旧记录。
答案 0 :(得分:0)
我对您遇到的问题不熟悉,但是如果您根本不关心缓存,则可以执行以下操作:
tools:listitem="@layout/view_onboarding_slide"
令您感到困惑的是您在async myMethod() {
this.store.unloadAll('student');
let students = await this.store.findAll('student');
}
内进行response.data
,我知道then
是原始json有效负载的属性,但所有{{ 1}}返回值的方法返回模型。因此,您将获得学生实例,而不是原始的json(如果您想要想要原始的json(我建议您反对),您可以只使用data
)。