Ich kann nicht scheinen, dass das funktioniert. Ich versuche, jedes leere Leerzeichen durch den Buchstaben "T" zu ersetzen, um meine Zeichenfolge in ein Datumsformat zu konvertieren, aber ich kann nicht scheinen, dass es funktioniert. Mein Array funktioniert, wenn ich console.log und sehe, dass es ist JJJJ-MM-TTTHH: mm-Format. Aber wenn ich es mit dem ng-Repeat-Filter verbinde, macht es nichts. Hier ist mein Code und Link zur JSbin https://jsbin.com/nesedenoce/edit?html,js,console,outputWinkelfilter zum Ersetzen einer Zeichenfolge in einem 3D-Array
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<title>date filter</title>
</head>
<body>
<div ng-app="test" ng-controller="controller">
<table class="table table-bordered table-striped">
<tr id="theader">
<thead>
<th>Talk Title</th>
<th>Start Time</th>
<th>End Time</th>
</thead>
</tr>
<tr ng-repeat="item in returnedObj | dateFilter ">
<td>{{item.presentation.title}}</td>
<td>{{item.presentation.start_time | date: "h:mm a"}}</td>
<td>{{item.presentation.end_time | date: "h:mm a"}}</td>
</tr>
</table>
</div>
</body>
</html>
JS
var app = angular.module('test', []);
app.controller("controller", ['$scope', function($scope){
$scope.returnedObj = [{"presentation":{"title":"Introduction to Algebra",
"persons":{"1":{"id":22,"start_time":"2017-05-19 08:00","end_time":"2017-05-19 08:20"},
"speakers":[{"firstname":"Charles","lastname":"Hardin"}]}}}];
}]);
app.filter('dateFilter', function(){
return function(item){
var correctTimeFilter = item.filter(function(i){
if(i.presentation.start_time || i.presentation.end_time){
console.log(i.presentation.start_time.replace(/\s/g, 'T'));
console.log(i.presentation.end_time.replace(/\s/g, 'T'));
return i.presentation.start_time.replace(/\s/g, 'T');
return i.presentation.end_time.replace(/\s/g, 'T');
}
else
return null;
})
return correctTimeFilter;
}
});
nicht klar, warum Sie einen Filter für Array dafür benötigen. Auch 'start_time' ist in' persons' Objekt verschachtelt. Ist nur Ziel, Datum zu analysieren? – charlietfl
Beachten Sie, dass es wahrscheinlich einfacher wäre, 'Personen' zu einem Array zu machen, wie' Speaker' – charlietfl
Ich habe '$ scope.returnedObj' hier als Array angegeben, aber in meinem ursprünglichen Code stelle ich Tausende von Datensätzen dar, die so aussehen von PHP, das war json_encoded. Aber das Format sieht meiner ursprünglichen JSON-Zeichenfolge sehr ähnlich. – missgg