Ember 返回路线时重置 Ember 数据中的项目

Ember reset items in Ember data when returning to route

我的 Ember 应用程序中有一条路线,它 return 是模型挂钩中的一组记录,如下所示:

model() {
  return this.store.findAll('pending-post');
}

假设这returns 10条记录,我在Ember Inspector的数据选项卡中可以看到这10条记录,当我登录{{model}}时。网络选项卡还显示在数据对象中 return 包含 10 条记录的数组。

然后我转到我的应用程序中的另一条路线并编辑 post 以便它不再处于待处理状态。此更改将保留到后端。

当我 return 到仪表板时,模型挂钩再次运行。网络选项卡中的请求现在 return 是一个包含 9 个对象的数组,因为 API 只有 returning 9 个项目。

但是,Ember inpector 中的数据选项卡仍然显示 10 个项目,{{model}} 中仍然有 10 个项目。

强制 Ember 数据删除未被 API 第二次 return 编辑的项目的最佳方法是什么?

将记录保存到后端returns一个Promise。因此 store.unloadRecord() 可用于 then 处理程序以从存储中删除记录。

record.save().then(function(){
    this.store.unloadRecord(record);
});

或者在查询模型之前,从存储中删除所有记录。

model()
{
    this.store.unloadAll('pending-post');
    return this.store.findAll('pending-post');
}

型号名称可以采用驼峰式或破折号形式。