首页 > 解决方案 > Route 上的数据未从 API 重新加载/重新获取

问题描述

说我有index路线edit。从index,我选择了项目并重定向到edit路由。然后,当我在路线上更改表单字段上的数据edit并单击浏览器上的后退箭头时,所做的更改index不应该反映在哪个上,因为未单击保存按钮。

但是当index路由被刷新时,所做的更改并不能反映哪个是正确的。现在路由如何在index不刷新页面的情况下重新加载数据。

标签: ember.js

解决方案


这可能是因为在编辑路线中您正在更新数据模型对象,因此更改将持续存在于 ember-data 模型中。您可能会在 ember 检查器中看到,当您对表单进行更改时,检查器表中的 ember-data 对象变为蓝色。

有几种方法可以解决这个问题,一种是在编辑路由的 willTransition 钩子中使用模型的rollbackAttributes方法,并以这种方式从 ember-data 中删除对模型的所有未保存的更改。

您还可以使用像ember-changeset这样的插件,这样在您实际单击保存按钮之前,您不会直接使用表单对 ember-data 模型进行更改。


推荐阅读