我有一个看起来像这样的键值对($ 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()这样的函数< / strong>点击任何一个文件名,它每次只返回整个文件名集(而不是我点击的特定文件名)。
是否有办法循环遍历 $ ctrl.displayData ,以便在单击任何特定文件名时,仅为该文件名调用该函数。
答案 0 :(得分:0)
// <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);
}
}
&#13;
<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>
&#13;
答案 1 :(得分:0)
我在JS控制器内处理它(使用拆分)。
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文件中显示。