Data binding 使用聚合物进行双向数据绑定管理/控制对象状态的最佳实践

Data binding 使用聚合物进行双向数据绑定管理/控制对象状态的最佳实践,data-binding,polymer,2-way-object-databinding,paper-elements,Data Binding,Polymer,2 Way Object Databinding,Paper Elements,让我们再试试这个解释 我是polymer的新手(在缺席了相当长的一段时间后又回到了web开发中),我想知道在采用双向数据绑定的同时,建议采用什么方法来更紧密地管理对象状态。我目前正在使用RESTAPI(json)对象。我的问题是,如果polymer在开始更新绑定对象的属性/属性之前保留了原始对象的副本…那么您是否可以轻松撤消更改?虽然通常需要允许双向数据绑定发挥其神奇作用,但在某些情况下,我希望阻止/延迟对对象/DOM的更改,直到用户批准更改为止(例如,通过paper dialog组件)。我认为

让我们再试试这个解释

我是polymer的新手(在缺席了相当长的一段时间后又回到了web开发中),我想知道在采用双向数据绑定的同时,建议采用什么方法来更紧密地管理对象状态。我目前正在使用RESTAPI(json)对象。我的问题是,如果polymer在开始更新绑定对象的属性/属性之前保留了原始对象的副本…那么您是否可以轻松撤消更改?虽然通常需要允许双向数据绑定发挥其神奇作用,但在某些情况下,我希望阻止/延迟对对象/DOM的更改,直到用户批准更改为止(例如,通过paper dialog组件)。我认为可以创建对象的临时副本并将字段绑定到该版本,然后在用户批准后将更改保留回源对象。在任何情况下,我都有兴趣听听我的想法,看看一两个推荐方法的例子(特别是如果我的想法偏离了轨道!)

我想可以制作一个对象的临时副本并进行绑定 字段,然后仅将更改保留回该版本 用户批准后的源对象

这个

考虑到视图模型本质上不同于纯数据模型(有时称为业务数据)。通常,这些差异是不相关的,可以互换使用。但是,请注意视图模型不同的场景(未提交的用户编辑就是一个很好的例子)


需要用户批准的字段编辑器的概念纯粹是面向UI/视图的。在该模式中管理的任何数据都完全在视图的域中,对业务数据的获取/提交应该是离散的。

谢谢Scott。但是,这是否会导致此处描述的问题:。如果是这样,我觉得它很笨重。也许有一种更好的方法可以使用javascript克隆一个我不知道的对象?(不依赖框架/jquery等)最终使用JSON字符串化方法:Yikes,字符串化方法效率低下。在任何情况下,这些问题都是wrt复制任意javascript对象的问题。在所描述的场景中,人们通常通过为数据提供UI来了解数据。在不了解更多项目的情况下,很难提出建议,但是可以尝试使用较小的数据块来考虑问题,而不是使用大量的对象图。例如,“地址”编辑器不会预先复制整个“客户”对象,“地址”编辑器只复制“地址”字段。