【问题标题】:Angular 2 rollback model state in forms表单中的Angular 2回滚模型状态
【发布时间】:2016-09-23 16:21:33
【问题描述】:

我在 Angular 2 中有一个绑定到模型的表单。现在我希望模型中的更改在用户点击取消时回滚。我如何做到这一点?

【问题讨论】:

  • 在此处查看有关 RestoreService 的讨论:angular.io/docs/ts/latest/guide/…
  • @MarkRajcok:这不起作用,因为我的模型也绑定到另一个组件,并且表单中的所有更改都必须反映在该组件中同时用户正在编辑形式。
  • 在显示表格之前复制您的模型。如果用户取消,恢复到副本,并通知其他组件也使用副本。
  • @MarkRajcok,这就是我现在正在做的事情。我认为可能有更好的方法来做到这一点。感谢您的宝贵时间。

标签: angular angular2-forms


【解决方案1】:

如果您通过执行 Object.assign({}, yourModel) 复制您的模型,您将不会改变原始对象,这将允许您恢复到原始对象。

【讨论】:

    【解决方案2】:

    我将重复 cmets 中讨论的内容(因为我不喜欢关于 SO 的未回答问题):

    • 对于许多用例,您可能可以使用与 Hierarchical Injectors 开发指南中讨论的 RestoreService 非常相似的东西。
    • 对于 OP 的特殊情况,其中模型绑定到另一个组件并且实时表单更改需要反映在另一个组件中,请在显示表单之前复制您的模型。如果用户取消,恢复到副本,并通知其他组件也使用副本(即,将副本发送给它)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      • 2017-01-30
      • 2017-07-16
      • 2016-05-07
      相关资源
      最近更新 更多