我正在使用EmberJS和Ember-Data,当模型绑定到控制器时,我想暂时避免双向绑定。例如,我有一个项目页面,项目名称始终显示在标题中。项目编辑表单能够更新项目名称。但是,由于双向绑定,如果更改项目名称,它也会在标题中实时更新。
从UX的角度来看,我不希望这样,因为我的用户似乎认为该值实际更新了(因为它在标题中实时更改),而实际上并没有(表单中)必须提交)。
我想要的是,当我在表单的上下文中时,能够暂时停用双向绑定。
PS:我首先考虑在标题中取消绑定项目名称,但这不起作用,因为如果表单实际更新,我希望更新标题中的项目名称。
感谢大家!
答案 0 :(得分:0)
您可以查看Kris Selden提出的BufferedProxy模式。更多信息:
http://coryforsyth.com/2013/06/27/ember-buffered-proxy-and-method-missing/
本文引用旧版本的Ember-Data,如果您在将更改保存到服务器或“飞行中”时尝试更改模型属性,则会出现错误。拥有代理的基本概念可以做出改变应该对你有帮助。
你可以在EmberNYC聚会上看到Kris在谈论它: https://www.youtube.com/watch?v=ysduY0ocUoA