gpt4 book ai didi

javascript - AngularJS 变量之间的绑定(bind)

转载 作者:可可西里 更新时间:2023-11-01 01:51:27 25 4
gpt4 key购买 nike

我有一个从我的服务中检索到的用户列表。当我选择任何用户时,我可以查看和编辑信息(电子邮件、 Angular 色等)。问题是我不希望这些更改影响列表中用户的数据,我只想在保存后更新数据(单击按钮)。

现在我使用两个变量:

$scope.selected - 当前选择的用户
$scope.editable - 用于存储我正在编辑的数据的变量

我这样交换数据:

$scope.initEditable = function () 
{
$scope.editable = {};
$.extend($scope.editable, $scope.selected);
}

看起来是个糟糕的解决方案。正确的做法是什么?

最佳答案

实际上,这是解决此问题的 Angular 方式,您走在正确的轨道上。在像您这样的场景中,通常会:

  • 在选择时复制项目(编辑开始)- 这就是您使用 editable
  • 所做的
  • 具有更改副本(或原始元素)的双向数据绑定(bind)
  • 编辑完成后,我们可以将更改从副本传播到原始

这种模式的好处是我们可以轻松地:

  • 提供“取消”功能,用户可以在其中恢复更改
  • 能够根据此比较来比较 UI 的副本与原始部分和驱动部分(例如,如果没有更改,我们可以禁用“保存”按钮)

所以,我完全不认为这种方法很糟糕。我唯一的建议是使用 Angular angular.copy method而不是 $.extend

关于javascript - AngularJS 变量之间的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13452142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com