ControllerFilter: notarray Erwartete Array aber erhalten: 0
@RequestMapping(value = "/graphs", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public Collection<Graph> getSkeletonGraph()
{
log.debug("REST request to get current graphs");
return graphService.getSkeletonGraphs();
}
Angular Anruf
$scope.graphs = [];
Graph.getGraphs().$promise.then(function(result)
{
$scope.graphs = result;
});
angular.module('sampleApplicationApp').factory('Graph', function($resource)
{
return {
getGraphs: function() {
return $resource('api/graphs/:id').query();
}
};
})
Ich bin nicht sicher, warum Sie den Filter mit bekomme ich die Ausnahme.
sah auch in eckigen doc https://docs.angularjs.org/error/filter/notarray Mein Ergebnis ist Array, aber nicht sicher, warum ich solche Ausnahme bekomme.
Beispiel Ergebnis aus Backend ich bekomme.
[{"id":"135520b0-9e4b-11e5-a67e-5668957d0149","area":"Bingo","models":[],"enumerateds":[]},{"id":"0db925e0-9e53-11e5-a67e-5668957d0149","area":"jin","models":[],"enumerateds":[]},{"id":"7a717330-9788-11e5-b259-5668957d0149","area":"Product","models":[],"enumerateds":[]},{"id":"402d4c30-980f-11e5-a2a3-5668957d0149","area":"fgfgfg","models":[],"enumerateds":[]},{"id":"404b77b0-9e53-11e5-a67e-5668957d0149","area":"olah","models":[],"enumerateds":[]},{"id":"cd071b10-9e52-11e5-a67e-5668957d0149","area":"lolo","models":[],"enumerateds":[]},{"id":"d9808e60-9710-11e5-b112-5668957d0149","area":"catalog","models":[],"enumerateds":[]},{"id":"2aaca9f0-97e2-11e5-91cd-5668957d0149","area":"btg","models":[],"enumerateds":[]},{"id":"955e9ed0-978c-11e5-93fd-5668957d0149","area":"promotions","models":[],"enumerateds":[]},{"id":"1e441d60-980f-11e5-a2a3-5668957d0149","area":"hjuhh","models":[],"enumerateds":[]},{"id":"fb96dfe0-978d-11e5-93fd-5668957d0149","area":"voucher","models":[],"enumerateds":[]}]
html
<li ng-repeat="g in graphs track by $index | filter:searchText"></li>
könnten Sie bitte die Logik hinter Ihrem Vorschlag –
Es ist eine Regel erwähnt in der Dokumentation beschreiben. Filter sollten vor der Spur durch Ausdruck angewendet werden. Siehe in Dokumenten: https: //docs.angularjs.org/api/ng/directive/ngRepeat –
Nachdem ich 2 Stunden damit verbracht hatte, herauszufinden, warum der Filter auf der Angular-Website funktionierte und meiner nicht, war dies die einzige Antwort, die mein Problem löste! Unnötig zu sagen, dass ich wahrscheinlich die Dokumente öffnen und erneut lesen müsste. Aber das ist sehr unintuitiv und der Fehler hilft überhaupt nicht, warum 'track by $ index' immer der letzte Ausdruck sein sollte? Macht keinen Sinn in meinem Kopf. – MacK