为什么数组保存最后的数据而不清除?

时间:2016-05-21 14:25:50

标签: arrays angularjs devextreme

我有一个简单的AngularJs医疗卡应用程序。

我有存储空间并使用home.html

dx-datagrid显示

enter image description here

一张卡有很多记录,我从recordsArray cardId获取了卡片记录

 getVardsRecordsByCardId: function (id, recordsArray) {
        if (recordsArray.length != 0) {
            for (var i = 0; i < recordsArray.length; i++) {
                if (recordsArray[i].cardId === id) {
                    cardsRecords = cardsRecords.concat(recordsArray[i]);
                }
            }
        }

        return cardsRecords;

    }

现在我在第三张卡片中有记录。我在按钮上添加了一个功能来测试它:

 var jdskla = [];
var localCardId = 0;
$scope.showCardDetails = {
    text: "",
    type: "default",
    icon: "preferences",
    onClick: function () {
        if ($scope.itemIdFromShowButton) {
            $location.path('/carddetail/' + $scope.itemIdFromShowButton);
            var jdskla =[];
            var jdskla = businessLogicOfMyApp.getVardsRecordsByCardId($scope.itemIdFromShowButton, $scope.recordsArray);
            console.log($scope.itemIdFromShowButton)
            console.log(jdskla);

        }
        else {
            alert("Error!!!");
        }
    }
};

enter image description here

1,3,1是cardIdarray条记录。但是,为什么卡片记录的array不能清除并保存最后的数据?

可能有人知道如何解决它?谢谢你的回答!

P.S。我在我的应用中使用ng-view指令,我试图清除array使用另一个按钮:

 $scope.backToGeneralPage = {
    text: "Back",
    onClick: function () {
        jdskla = [];
        $location.path('/');
    }
};

但没有帮助。

1 个答案:

答案 0 :(得分:2)

你应该在函数getVardsRecordsByCardId中初始化cardsRecords数组。

 getVardsRecordsByCardId: function (id, recordsArray) {
    var cardsRecords = []; // initialize array locally
    if (recordsArray.length != 0) {
        for (var i = 0; i < recordsArray.length; i++) {
            if (recordsArray[i].cardId === id) {
                cardsRecords.push(recordsArray[i]);
            }
        }
    }
    return cardsRecords;
}