Использование AngularJS "copy()", чтобы избежать проблем с ссылками

Я показываю список элементов, каждый из которых имеет кнопку "edit" рядом с ним. Щелчок на этом открывает окно мода angular ui, и пользователь может изменить некоторые свойства конкретного элемента.

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

В моем обходе используется копия, чтобы сделать копию нужного элемента, которая затем служит в качестве модели для представления:

var modalInstance = $modal.open({
    templateUrl: 'scripts/app/views/editBond.html',
    controller: function ($scope, $modalInstance, bond) {
        $scope.bond = angular.copy(bond);
        $scope.ok = function () {
            $modalInstance.close($scope.bond);
        };
        $scope.cancel = function () {
            $modalInstance.dismiss('cancel');
        };
    },
    resolve: {
        bond: function () {
            return bond;
        }
    }
});

Использует angular.copy(), чтобы избежать таких проблем? Это проблема масштаба?

Ответы

Ответ 1

Да, использование angular.copy() здесь абсолютно уместно. Если вы хотите что-то более продвинутое, вы можете проверить angular-history