2016-05-21 8 views
1

私は単純なAngularJs医療カードのアプリケーションを持っています。なぜ配列は最後のデータを保存し、クリアされませんか?

私はそれでストレージを持っているとdx-datagridを使用して、私のhome.htmlでそれを表示:1枚のカードは、多くのレコードを持っている

enter image description here

、私は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; 

    } 

によってrecordsArrayからカードのレコードを取得します私は3枚目のカードに記録があります。私はそれをテストするためのボタンに機能を追加しました:

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はcardId年代とレコードのarrayです。しかし、なぜカードレコードのarrayがクリアして最後のデータを保存しないのですか?

誰かが私がそれを解決する方法を知っているかもしれませんか?あなたの答えをありがとう!

P.S.私は私のアプリでng-viewディレクティブを使用していると私は私のarrayは、別のボタンを使っクリアしようとした:

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

を、それは役に立ちませんでした。

+0

array.pcatを使用した場所を変更したいと思います。 –

+0

@Mike Feltman、ありがとう、私はそれを変更しましたが、それでも動作しません。 –

+0

異なるjavascriptスコープで 'var jdskla'を2回使用するので、実際には同じ名前の2つの異なる変数があります。 – charlietfl

答えて

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; 
} 
+0

ああ、私の工場で初期化しました。 –

関連する問題