2017-06-01 44 views
0

我有一個服務,其中有一個來自API的複雜對象,例如,如何將對象重置爲其原始值並在AngularJS中保持綁定

{ 
    name: "Foo", 
    addr: { 
     street: "123 Acacia Ave", 
     zip: "10010" 
    } 
} 

我將其存儲在myService.address和使用

myService.originalAddr = angular.copy(myService.addr); 

在另一個變量的初始值,所以我可以,如果需要的形狀恢復到初始值。

在我的指令的控制器我注入了服務,並綁定一個作用域屬性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正在斷開綁定。請問我做錯了什麼?

+0

代碼和說明,比文字更好..請改善你的問題 – Maher

回答

0

到您問題的解決方法應該是:

$scope.reset = function(){ 
    $scope.addr = angular.copy(myService.originalAddr); 
} 
相關問題