Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在angular中禁用双向绑定?_Javascript_Html_Angularjs_Mddialog - Fatal编程技术网

Javascript 在angular中禁用双向绑定?

Javascript 在angular中禁用双向绑定?,javascript,html,angularjs,mddialog,Javascript,Html,Angularjs,Mddialog,我正在使用Angular materialmd对话框,当用户单击按钮(编辑按钮)以显示对话框时,它将获取当前对象(表格中的一行)并将其传递给showDialog函数,用其值填充对话框字段: <button ng-class="showDialog(task)">Open dialog</button> 但是,每当我编辑对话框中的值时,表的后面就会有一个活动绑定,表中的键击值与对话框中的键击值相同,如果我在外部单击(取消编辑),这些值将保持不变。 那么有没有办法禁用这种双

我正在使用Angular material
md对话框
,当用户单击按钮(编辑按钮)以显示对话框时,它将获取当前对象(表格中的一行)并将其传递给
showDialog
函数,用其值填充对话框字段:

<button ng-class="showDialog(task)">Open dialog</button>
但是,每当我编辑对话框中的值时,表的后面就会有一个活动绑定,表中的键击值与对话框中的键击值相同,如果我在外部单击(取消编辑),这些值将保持不变。
那么有没有办法禁用这种双向绑定,只需将对象的副本传递给
showDialog
函数而不是引用?

在这种情况下,
angular.copy()
就可以了。有很多方法可以做到这一点,但您应该使用一个简单的解决方案-这就是为什么
angular.copy()
这次应该这样做-尝试:

$scope.taskToEdit = angular.copy(task);

这不会禁用AngularJS中的E2E绑定,但会阻止更新主视图中的
$scope

有没有办法传递对象的副本?是的,有。创建副本,并将其传递给showDialog函数。您是否在询问如何创建对象的副本?这个物体看起来像什么?你试过什么?嘿,穆罕默德,我还在这里等你的回复:
$scope.taskToEdit = angular.copy(task);