【问题标题】:EmberJS: temporarily avoid two-way bindingsEmberJS:暂时避免双向绑定
【发布时间】:2026-01-29 08:45:01
【问题描述】:

我将 EmberJS 与 Ember-Data 一起使用,并且我想在模型绑定到控制器时暂时避免双向绑定。例如,我有一个项目页面,其中项目名称始终显示在标题中。项目编辑表单能够更新项目名称。但是由于是双向绑定,所以如果项目名称发生变化,也会在header中实时更新。

从用户体验的角度来看,我不希望这样,因为在我的用户看来,该值实际上已更新(因为它在标题中实时更改),而实际上并没有(表单必须提交)。

我希望能够在表单上下文中暂时停用双向绑定。

PS:我首先想到的是解绑表头中的项目名,但是这行不通,因为如果表单真的更新了,我希望表头中的项目名也能更新。

谢谢大家!

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您可以查看 Kris Selden 提出的 BufferedProxy 模式。更多信息在这里:

    http://coryforsyth.com/2013/06/27/ember-buffered-proxy-and-method-missing/

    这篇文章指的是旧版本的 Ember-Data,如果您在将更改保存到服务器或“运行中”时尝试更改模型属性,则会出现错误。拥有代理的基本概念可以进行更改应该对您有所帮助。

    您可以在这里看到 Kris 在 EmberNYC 聚会上谈论它: https://www.youtube.com/watch?v=ysduY0ocUoA

    【讨论】:

    • 感谢您的链接。我会阅读它并让你知道它是否是我正在寻找的:)。