2016-04-17 226 views
1

對於Angular和JavaScript,我還是很新的,所以如果這是一個明顯的錯誤,那麼我很抱歉。無法訪問數組的元素

我有這段代碼選擇2個文本文件,然後將它們放入一個數組中。

$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); 
    }); 

這將顯示類似的數組:

[ 「160 591 114 229」, 「186 699 132 272」]

當我通過HTML訪問數組兩個元件的數組顯示,我可以使用拆分,長度等,但如果我通過腳本訪問數組,我只能訪問和更改第一個元素。如果我嘗試通過textArray[1]訪問第二個元素,則不會顯示任何內容,如果我添加textArray[1].split(' ')它表示它不能讀取未定義的屬性。

我已經嘗試在腳本中使用連接和切片來改變數組或創建一個新的數組,但他們也無法訪問該元素。任何有關這個問題的幫助將不勝感激。

編輯: 當我使用

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

它工作正常,並輸出正確的事情,但是當我使用

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

它不輸出任何東西。

EDIT2:發現了同樣的問題,另外一個問題,並設法通過加入

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

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

回答

0

前你應該嘗試修復它,分裂

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

這應該工作。確保您將$scope作爲參數傳遞給試圖拆分textArray的方法。

這是一個工作示例:

<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