从数组中删除项目需要很长时间

时间:2016-02-17 10:58:49

标签: javascript angularjs

在我的控制器里面我有两个功能,第一个允许我添加新项目到数组,第二个删除单个项目。

我的整个控制器看起来像这样:

.controller('MyCtrl', function($scope, $mdDialog) {
  $scope.questions = [{
    text: 'What is Your name?',
    files: [{
      id: 1,
      name: 'file 1'
    }]
  }, {
    text: 'Question 2',
    files: [{
      id: 1,
      name: 'file 1'
    }]
  }, {
    text: 'Question 3',
    files: [{
      id: 1,
      name: 'file 1'
    }]
  }];

  $scope.selectedQuestionIndex = undefined;
  $scope.selectedQuestion = function(index) {
    if ($scope.selectedQuestionIndex !== index) {
      $scope.selectedQuestionIndex = index;
    } else {
      $scope.selectedQuestionIndex = undefined;
    }
  };

  $scope.addFile = function(question) {
    question.files.push({
      id: 2,
      name: 'file 2'
    });
  };
  $scope.deleteFile = function(question, file) {
    var index = question.files.indexOf(file);
    question.files.splice(index, 1);
  };
});

添加新项目很快,但删除需要更多时间: delete delay

以下是Plunker显示问题:http://plnkr.co/edit/YYxeHlubDk0VThmQNmw4?p=preview

我的问题是:如何加快删除分配给问题的文件(我应该如何优化deleteFile函数)?

1 个答案:

答案 0 :(得分:2)

您可以disable animation了解特定元素。

.directive('noAnimate', ['$animate', function (animate) {
    return function (scope, element) {
        animate.enabled(element, false); 
    };
}])

请参阅plunker