[英]Ember.JS Best Practice: Model vs Controller field binding
我正在Ember.JS中寻找最佳实践来修复以下情况:
发生此问题的原因是,我的所有文本字段都直接绑定到质询模型,并且由于在您键入模型后即会对其进行更新,因此会更新所有路线上的文本。 我在编辑表单上有一个取消按钮,我在模型上执行this.get('model')。rollback()以取消编辑。 但是,如果您在可以单击的页面的其他位置开始执行回滚,则会变得混乱。
我考虑解决此问题的方法是将form字段绑定到控制器属性,并在每条路径上将模型属性复制到setupController钩子上的控制器属性。 这样可以防止编辑影响其他路线。
我想知道这是灰烬最佳实践还是有解决此问题的更好方法?
谢谢
您可以在deactivate
路由挂钩中使用单个回滚。 然后,在cancel
操作上,您只能进行过渡。
// edit challenge route
model(params) {
...
},
deactivate() {
this.modelFor( this.get('routeName')).rollback();
}
PS您是否知道rollback()
仍不能与关系正常工作,并且在ED 2.0中简化为rollbackAttributes()
?
相关链接: https : //github.com/emberjs/data/issues/2122 https://github.com/emberjs/data/issues/3273#issuecomment-110965145
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.