Javascript 如何将对象重置为其原始值并在AngularJS中保持绑定
我有一个服务,它有一个来自API的复杂对象,例如Javascript 如何将对象重置为其原始值并在AngularJS中保持绑定,javascript,angularjs,data-binding,Javascript,Angularjs,Data Binding,我有一个服务,它有一个来自API的复杂对象,例如 { name: "Foo", addr: { street: "123 Acacia Ave", zip: "10010" } } 我将其存储在myService.address中,并使用 myService.originalAddr = angular.copy(myService.addr); 因此,如果需要,我可以将表单重置为初始值 在指令的控制器中,我注入服务并将一个scope属
{
name: "Foo",
addr: {
street: "123 Acacia Ave",
zip: "10010"
}
}
我将其存储在myService.address中,并使用
myService.originalAddr = angular.copy(myService.addr);
因此,如果需要,我可以将表单重置为初始值
在指令的控制器中,我注入服务并将一个scope属性绑定到myService.addr
$scope.addr = myService.addr;
…据我所知,这应该设置双向绑定
在另一个指令中,我运行函数时:
$scope.reset = function(){
myService.addr = angular.copy(myService.originalAddr);
}
这将按预期工作,myService.addr将重置为初始值。但是,我在表单中绑定的值不会重置,$scope.addr将保持编辑状态。我一直在使用
<input type="text" ng-bind="addr.street"/>
也试过了
<input type="text" ng-model="addr.street"/>
但是表单中的值保留了编辑后的值,不会重置。似乎angular.copy正在断开绑定。请问我做错了什么?解决您问题的方法应该是:
$scope.reset = function(){
$scope.addr = angular.copy(myService.originalAddr);
}
代码和描述,比文字要好得多。。请改进你的问题