反映对象影响对范围的影响

时间:2015-01-06 20:02:56

标签: javascript angularjs

我尝试通过重新影响我在编辑之前制作的副本来取消对ng-repeat项目所做的更改,原始对象受到影响但视图中没有任何变化。它很奇怪,我还没弄明白为什么!

http://jsfiddle.net/leseulsteve/a16j16mk/8/

<div ng-controller="MyCtrl">
  <ul ng-repeat="item in list">
    <li ng-click="edit(item)">{{item.description}}</li>
  </ul>
  {{originalDescription}}
</div>

-

function MyCtrl($scope, $timeout) {    
  $scope.list = [{
    description: 'I love bacon'
  }, {
    description: "J'aime le bacon"
  }];

  $scope.edit = function (item) {
    var originalItem = angular.copy(item);
    item.description = 'aaa';    /// update the view

    $timeout(function () {
        item = originalItem;   // doesn't update the view :((
        $scope.originalDescription = item.description;  // Show the original description.
    }, 1000);
  }
}

0 个答案:

没有答案