Почему Angular не связывает данные при копировании объекта из другого объекта?

Мы создали простой jsfiddle, чтобы проиллюстрировать мой вопрос:

играть на скрипке

Html:

   
    
        <span ng-click="overwrite(p)">{{ p.id }}: {{ p.name }}</span>
    

Javascript:

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {

    var products = [{id:1, name:'first'}, {id:2, name:'second'}];
    $scope.products = products;

    var prod = {id: 3, name:'third'};

    $scope.overwrite = function(p){
        p.id = 4;
        p.name = 'forth';

        p = prod; // this doesn't work nor does angular.copy(prod)
    }
}

Как вы можете видеть, когда я устанавливаю свойства вручную, значения связываются. Но когда я перезаписываю объект, ничего не происходит. Как это возможно? И что мне делать, когда я хочу восстановить объект в нем?исходное состояние?

Представьте, что я создаю объект резервного копирования, используяvar productBackup = angular.copy(product), Затем я делаю изменения в исходном продукте, а затем решаю отменить свои изменения. Я хочу сделать это с помощьюproduct = productBackup, Но это нет работа! В этом случае мне нужно установить все свойства вручную, как это?

product.id = productBackup.id;
product.name = productBackup.name;
etc...

Ответы на вопрос(2)

Ваш ответ на вопрос