我仍然是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(' ');
答案 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(' ');
}