我有一个从我的服务中检索的用户列表。当我选择任何用户时,我可以看到并编辑信息(电子邮件,角色等)。问题是我不希望这些更改影响列表中的用户数据,我只想在保存(单击按钮)后更新数据。
现在我使用两个变量:
$scope.selected
- 当前选定的用户
$scope.editable
- 用于存储我正在编辑的数据的变量
我交换这样的数据:
$scope.initEditable = function ()
{
$scope.editable = {};
$.extend($scope.editable, $scope.selected);
}
看起来像一个可怕的解决方案。这样做的正确方法是什么?
答案 0 :(得分:15)
实际上,这是接近这个问题的Angular方式,你走在正确的轨道上。在像你这样的场景中,通常会:
editable
关于这种模式的好处是我们可以很容易地:
所以,我根本不认为这种方法很糟糕。我唯一的建议是使用角度angular.copy
method代替$.extend
。