当destroy()调用

时间:2015-05-08 07:52:28

标签: javascript angularjs

所以我使用destroy()来点击我的$ scope.array中的项目。它工作正常,当我打开我的控制台时,显示如下:

$scope.array[index].destroy is not a function

所以我删除了这行代码,希望它能修复控制台错误,但确实如此,但之后我的应用程序无效。我检查了它是否是其他东西它不是它只是这个,它正在工作,但错误仍然显示。我不知道是因为它是旧版本?

编辑:在ng-click上调用的整个函数:

    $scope.SpliceItems = function (index)
    {
            $scope.array.splice(index, 1);
        }
   $scope.DestroyItem = function(index) {

            $scope.array[index].destroy();
        }

    $scope.remove = function(item)
    {
     for (var i = 0; i < $scope.array.length; i++) {
                if ($scope.array[i].Id == item.Id) {     
                   $scope.SpliceItems(i);
                   $scope.DestroyItem(i);

        }
    }

编辑2

那么,这里的问题是什么?在数组中添加或删除时,我需要动态地乘以此函数:

$scope.getTotal= function() {
        var total = 1;
        for (var i = 0; i < $scope.array.length; i++) {
            total *= $scope.array[i];
        }
        if (total == 1)
            total = 0;
        return total;
    }

当我使用JUST SPLICE时,它不会改变总值,它总是相乘。当我使用splice + destory()它工作正常,但浏览器控制台由于某种原因给我错误。

2 个答案:

答案 0 :(得分:2)

使用splice()代替destroy()例如: $scope.array.splice(index, 1);

答案 1 :(得分:0)

如果要从数组中删除元素,请尝试使用

$scope.array = ['a', 'b']; 
$scope.array.splice(index,1);