【发布时间】:2015-10-09 17:20:08
【问题描述】:
我正在寻找 Ember.JS 中的最佳实践来解决以下情况:
- 用户点击挑战链接。
- 系统显示挑战列表。
- 用户点击编辑挑战按钮。
- 系统显示编辑挑战表单。
- 用户更新挑战名称。
- 用户点击leagues链接而不保存挑战。
- 系统显示联赛列表。
- 用户点击挑战链接。
- 系统显示挑战列表以及更新的挑战名称。
之所以出现此问题,是因为我的所有文本字段都直接绑定到挑战模型,并且模型在您键入后立即更新,它会更新所有路线上的文本。我在编辑表单上有一个取消按钮,我在模型上执行 this.get('model').rollback() 以取消编辑。但是,如果您开始在可以单击的页面上的不同位置进行回滚,这会变得很混乱。
我正在考虑解决此问题的方法是将表单字段绑定到控制器属性,并在每个路由上将模型属性复制到 setupController 挂钩上的控制器属性。这将防止编辑影响其他路线。
我想知道这是 ember 中的最佳做法还是有更好的方法来解决这个问题?
谢谢
【问题讨论】:
-
还有其他方法,但在一个地方进行回滚应该已经足够好了,很可能是
willTransition钩子。 -
有些人通过创建记录副本来解决它,然后把它扔掉而不是回滚。还需要注意的是,回滚只会回滚属性,不会回滚关系。
标签: javascript ember.js