javascript – 如何重置嵌套的ng-repeat

我有一个嵌套的ng-repeat和一个过滤器来分组.

我创造了这个
    fiddle.

var myApp = angular.module('myApp', []);
myApp.controller('myCtrl',['$scope', function($scope) {
   $scope.data =[
    {subject: 'English',module: 'Literature', score: 95}, 
    {subject: 'Maths',module: 'Calculus', score: 90}
   ];

   $scope.dropScore = function() {
      if ($scope.data[0].score > 0) {
       $scope.data[0].score -= 8;
      }
   }

   $scope.origData = angular.copy($scope.data)

   $scope.reset = function () {
     $scope.data = angular.copy($scope.origData);
   };
}])

.filter('groupBy', function() {
  return _.memoize(function(items, field) {
      return _.groupBy(items, field);
  }
 );
});

当您按下按钮命中分数时,英语的分数会下降,但单击重置将重置$scope.data值,但不会在屏幕上显示更新的数据.

有人可以帮忙吗?

最佳答案
Working Demo

只需使用此重置方法:

$scope.reset = function () {   
      $scope.data[0].score = angular.copy($scope.origData[0].score);      
    };
点赞