如何在angularjs中出现模态弹出窗口时使背景静态

时间:2014-06-23 05:40:52

标签: javascript angularjs twitter-bootstrap

我正在使用模态弹出窗口来编辑网格视图中的行。我可以使用row.getProperty()函数检索模态中的行值。但问题是当我尝试编辑模态中的值时,该值也会在单击更新按钮之前同时在后台视图中更改。

2 个答案:

答案 0 :(得分:2)

如果您不希望结束立即生效,则需要复制模型并编辑复制的版本。用户单击更新按钮后,您可以将复制的值移动到原始模型。

function Controller($scope) {
   $scope.master= {};

   $scope.update = function(user) {
     // Example with 1 argument
     $scope.master= angular.copy(user);
   };

   $scope.reset = function() {
     // Example with 2 arguments
     angular.copy($scope.master, $scope.user);
   };

   $scope.reset();
 }

有关详细信息,请参阅https://docs.angularjs.org/api/ng/function/angular.copy

答案 1 :(得分:1)

我猜你正在使用相同的对象引用来绑定到你的模态视图和你的静态背景视图。

要解决此问题,您可以在模态中创建对象的副本:

在模态中,使用$scope.copy = angular.copy(obj);将对象的副本绑定到范围。 提交后,使用angular.extend(obj, copy);将属性重新分配回原始对象。

[编辑]

使用angular.copy将副本分配回原始obj也可以工作,并且优于扩展:

 $scope.obj = angular.copy(copy, obj);