2014-09-16 2 views
2

Я сделал popup popup, который меняет значения в некоторых переменных в области. Я хочу вернуть любые изменения, внесенные в эти переменные, но когда popUp закроется, изменения не будут внесены в те значения, которые отображаются в текущем представлении, не обновляя представление.

Изменение значения элементов в popUp работает безупречно и в режиме реального времени.

Я попытался поместить корень этих переменных во временную переменную и сделать переключатель, когда пользователь отменит. Для значений области вернутся, но представление не обновляется.

var inventoryLineTemp = $scope.inventoryLine; 
var updateQuantityPopup = $ionicPopup.show({ 
    templateUrl: 'templates/popUps/quantityPopUp.html', 
    title: "Quantité", 
    scope: $scope, 
    buttons: [ 
    { text: 'Cancel', 
     onTap: function(e) { 
     $scope.inventoryLine = inventoryLineTemp; 
     } 
    }... 

ответ

6

Вы не можете сделать, как этот вар inventoryLineTemp = $ scope.inventoryLine; Потому что они ссылаются на один и тот же объект.

Использование angular.copy вместо:

вар inventoryLineTemp = angular.copy ($ scope.inventoryLine);

+0

Так логично хеха спасибо! просто любопытно, как бы вы сделали то же самое в чистом javascript? – leseulsteve

+0

Получил! http://stackoverflow.com/questions/728360/most-elegant-way-to-clone-a-javascript-object – leseulsteve

1

угловая копия также может быть использована следующим образом

angular.copy (Source, Dest);

Это работает для меня, когда я не получаю значение правильно возвращаемые копиями

См Documentation here

Смежные вопросы