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 文件中显示。
我有一个看起来像这样的键值对 ($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 文件中显示。