ember.js - Route 上的数据未从 API 重新加载/重新获取
问题描述
说我有index
路线edit
。从index
,我选择了项目并重定向到edit
路由。然后,当我在路线上更改表单字段上的数据edit
并单击浏览器上的后退箭头时,所做的更改index
不应该反映在哪个上,因为未单击保存按钮。
但是当index
路由被刷新时,所做的更改并不能反映哪个是正确的。现在路由如何在index
不刷新页面的情况下重新加载数据。
解决方案
这可能是因为在编辑路线中您正在更新数据模型对象,因此更改将持续存在于 ember-data 模型中。您可能会在 ember 检查器中看到,当您对表单进行更改时,检查器表中的 ember-data 对象变为蓝色。
有几种方法可以解决这个问题,一种是在编辑路由的 willTransition 钩子中使用模型的rollbackAttributes方法,并以这种方式从 ember-data 中删除对模型的所有未保存的更改。
您还可以使用像ember-changeset这样的插件,这样在您实际单击保存按钮之前,您不会直接使用表单对 ember-data 模型进行更改。
推荐阅读
- javascript - 是否可以在 ejs 模板中嵌入自定义元素?
- javascript - 从 _.map() 返回唯一值
- jquery - 如何手动将 K-Dirty 添加到 Kendo Edit Grid
- python - 使用 Ubuntu 18 不显示 QPixmap
- c# - 考虑到内部/反向/协方差,这是不可能的吗?
- material-ui - Google Maps 上的多个 Poppers 仅显示当前的 OnClick
- python - 从簇中返回面积最大的圆
- php - 当 SUM 用于特定条件时,如何避免 FOREACH 块中的 MySQL 查询?
- python-2.7 - 与另一个夹具一起使用时找不到 PyTest 夹具
- python-3.x - 是否可以将字符串列表保存到 CSV 并再次将其作为(字符串)列表读取?