AngularJS 中键值对值部分的不同解析方式

Different way of parsing through value part of key-value pair in AngularJS

我有一个看起来像这样的键值对 ($ctrl.displayData)-

143:"/this/is/a/very/long/fil22↵/this/is/a/very/long/file/path.php↵anotherone.php↵newfilel123.php"

它保存文件名,当我用 ng-repeat 显示它时,文件名显示在换行符中(正如我想要的那样)。

为了显示我使用-

<div>
    <div id="outputDiv" ng-click="$ctrl.deleteRow(displayData)" ng-repeat="displayData in $ctrl.displayData">{{displayData}}</div>
</div>

到目前为止,函数 deleteRow() 非常基础 -

ctrl.deleteRow = function(index){
    console.log(index);
}

但是当我使用 ng-repeat 循环时,整个 {{displayData}} 只在一次迭代中打印出来,所以如果我要调用像 deleteRow() 点击任何一个文件名,每次都是 returns 整组文件名(而不是我点击的特定文件名)。

是否有一种循环遍历 $ctrl.displayData 的方法,以便在单击任何特定文件名时,仅针对该文件名调用该函数。

你可以使用 javascript 拆分吗?

// <body ng-app='myApp' binds to the app being created below.
var app = angular.module('myApp', []);

// Register MyController object to this app
app.controller('MyController', ['$scope', MyController]);    

// We define a simple controller constructor.
function MyController($scope) {
   $scope.files = "/this/is/a/very/long/fil22 \n /this/is/a/very/long/file/path.php \n anotherone.php \n newfilel123.php"

  $scope.split = function(s) {
    return s.split('\n');
  }

  $scope.doStuff = function(d) {
    console.log(d);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp">
<div ng-controller='MyController'>
    <p ng-repeat="d in split(files)">
      <span ng-click="doStuff(d)">{{d}}</span>
    </p>
</div>
</div>

我在 JS 控制器中处理了它(在那里使用 split)。

ctrl.arrayList = new Array(); 
for(var i in ctrl.displayData) { 
    ctrl.arrayList = ctrl.displayData[i].split('\n'); 
}
return ctrl.arrayList;

在此之后,我在数组 ctrl.arrayList 上使用 ng-repeat 以在 HTML 文件中显示。