无法访问数组的元素

时间:2016-04-17 04:41:35

标签: javascript html arrays angularjs

我仍然是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访问数组时,显示了数组的两个元素,我可以使用split,length等。但是如果我通过脚本访问数组,我只能访问和更改第一个元素。如果我尝试通过textArray[1]访问第二个元素,则不会显示任何内容,如果我添加textArray[1].split(' '),则表示它无法读取未定义的属性。

我尝试在脚本中使用join和slice来更改数组或创建新数组,但它们也无法访问该元素。任何有关此问题的帮助将不胜感激。

编辑: 当我使用

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

它工作正常并输出正确的东西,但是当我使用

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

它不会输出任何内容。

Edit2:找到了另一个有同样问题的问题,并设法通过添加

来修复它
$scope.$watch('textArray', function(){

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

1 个答案:

答案 0 :(得分:0)

您应该尝试拆分

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

那应该有用。确保将$scope as参数传递给尝试拆分textArray的方法。

这是一个有效的例子:

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

和javascript:

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