2016-04-17 7 views
1

私はまだAngularとJavaScriptには新しいので、これが間違いである場合はお詫び申し上げます。配列の要素にアクセスできない

私は2つのテキストファイルを選択し、それらを1つの配列に入れます。

$scope.textArray = []; 
$scope.textUpload = function(event){ 
    var files = event.target.files; 

     for (var i = 0; i < files.length; i++) { 
      var file = files[i]; 
       var reader = new FileReader(); 
       reader.onload = $scope.textIsLoaded; 
       reader.readAsText(file); 
     }; 
}; 
$scope.textIsLoaded = function(e){ 
    $scope.$apply(function() { 
     $scope.textArray.push(e.target.result); 
    }); 

これはのように配列表示されます。私は、HTMLを介して両方の要素をアレイにアクセスするとき

[ "160 591 114 229"、 "186 699 132 272"]

をの配列が表示され、分割、長さなどを使うことができます。しかし、スクリプトを使って配列にアクセスすると、最初の要素にのみアクセスして変更することができます。 を通して2番目の要素にアクセスしようとすると、何も表示されません。textArray[1].split(' ')を追加すると、未定義のプロパティを読み取ることができません。

スクリプトでjoinとsliceを使って配列を変更したり、新しい配列を作成しようとしましたが、要素にもアクセスできませんでした。この問題の助けに感謝します。

編集: 私は

$scope.arrayOne = $scope.textArray[0].split(' ')

を使用する場合はそれが正常に動作し、正しいものを出力しますが、私は

$scope.arrayOne = $scope.textArray[1].split(' ')

を使用するときには何も出力しません。

EDIT2:

$scope.arrayOne = $scope.textArray[1].split(' '); 

答えて

0

の前で

$scope.$watch('textArray', function(){ 

を追加することで、同じ問題に別の質問を発見し、それを修正するために管理あなたは試してみて、

$scope.textArray[1].split(' '); 

を分割する必要がありますそれはうまくいくはずです。 textArrayを分割しようとしているメソッドにパラメータとして$scopeを渡してください。

これは実施例である:

<div ng-controller="ResultSplit"> 
    {{result}} 
</div> 

とJavaScript:

function ResultSplit($scope) { 
    $scope.textArray = ["1223 2233", "3344 555 6666"]; 
    $scope.result = $scope.textArray[1].split(' '); 
} 
+0

私はこれを試してみましたが、それは単に未定義のプロパティ「分割」を読み込めませんと言います。 – Matt

+0

これをやろうとしたところにメソッドを置くことはできますか? –

+0

このように試しました $ scope.arrayOne = $ scope.textArray [1] .split( ''); – Matt

関連する問題