2016-12-03 7 views
0

私は、分割されたlocalStorageに格納された情報のリストを持っています。 localStorageの初期値はFC Girondins de Bordeaux*null*null*OSC Lilleです。分割作業はうまくいきますが、私はページをリフレッシュします。値はFC Girondins de Bordeaux null - null OSC Lille undefined - undefined undefinedです。どうすれば修正できますか?javascript .split()未定義の値を取る

私app.jsコード:

.controller('myMatchsCtrl', function($scope, $localStorage) { 
    $scope.$storage= localStorage; 
    console.log(localStorage); 
    $scope.nbstore = localStorage.length; 
    var tabAff = []; 
    // show localStorage 
    for (var i = 0, len = localStorage.length; i < len; ++i) { 
    localStorage.getItem(localStorage.key(i)); 
    tabAff[i] = localStorage[i+1].split("*"); 
    $scope.$storage[i+1] = tabAff[i][0] + " " + tabAff[i][1] + " - " + tabAff[i][2] + " " + tabAff[i][3]; 
    }; 

私のhtmlコード:

<div id="myMatch" ng-repeat="n in [].constructor(nbstore+1) track by $index" ng-if="nbstore"> 
    <h5> {{$storage[$index]}}</h5> 
    <label class="toggle" ng-model="myMatchsCtrl" ng-click="deleteMyMatch($storage[$index])"> 
     <input type="checkbox" checked ng-click="reloadPage()"/> 
     <div class="track"> 
      <div class="handle"></div> 
     </div> 
    </label> 
</div> 

答えて

1

説明

あなたが最初の分割をやっている、あなたが上書きしているのlocalStorageあなたの計算された価値と一緒に。 は基本的に、ここで何が起こっているかである:。

tabAff[i] = "FC Girondins de Bordeaux*null*null*OSC Lille".split("*") 
// tabAff[i] = [ "FC Girondins de Bordeaux", "null", "null", "OSC Lille" ] 

$スコープので$ストレージ=のlocalStorage、あなたはのlocalStorageに

tabAff[i][0] + " " + tabAff[i][1] + " - " + tabAff[i][2] + " " + tabAff[i][3]; 
// = "FC Girondins de Bordeaux null - null OSC Lille" 

を入れているしています。 " - nullのOSCリールFCジロンダン・ボルドーのヌル" ページを更新するとき、あなたはあなたの

tabAff[i] = [ "FC Girondins de Bordeaux null - null OSC Lille" ] 

のでtabAff [I] [0] =与える

"FC Girondins de Bordeaux null - null OSC Lille".split("*") 

をやっている

、 とtabAff [I] [1] = tabAff [i]の[2] = tabAff [I] [3] =未定義

だから tabAff[i][0] + " " + tabAff[i][1] + " - " + tabAff[i][2] + " " + tabAff[i][3] はあなたにを与えます

ソリューション

のlocalStorageの値を上書きする($scope.$storage= localStorage;を除去する)、またはのlocalStorage

の別の部分で計算された値( tabAff[i][0] + " " + tabAff[i][1] + " - " + tabAff[i][2] + " " + tabAff[i][3])を記憶しません
関連する問題