Dies sollte eine sehr einfache Sache sein. Ich baue eine IONIC-App mit einer JSON-Datendatei. Die Daten sind in etwa so.Ionic Get Integer-ID aus JSON-Daten
Jetzt möchte ich nach "Typ" in den Daten filtern und dann die Daten mit "ID".
<ion-list ng-repeat="person in people | filter: {'type': 'male'}">
<ion-item href="#tab/people/males/{{ person.id }}">{{ person.name }}
</ion-item>
</ion-list>
Der Controller für diese ist:
.controller('PeopleController', ['$scope', '$state', '$http', function($scope, $state, $http){
$http.get('data/people.json').success(function(data){
$scope.people = data;
$scope.whichPerson = $state.params.id;
}),
}])
Dies zeigt die erforderlichen Daten von Männern nur dem Namen nach.
Allerdings, wenn ich die einzelnen Bio mit dem folgenden Code
<div class="card" ng-repeat="person in people | filter: { id: whichPerson }">
<h2>{{ person.name }}</h2>
<p>{{ person.bio}}</p>
</div>
Wenn ich die einzelnen Element klicken, um zu sehen möchten für jede Person angezeigt person.bio ich beide John und Mary zu bekommen.‘
Ich dachte, dies lag daran, dass die "ID" 1 und 10 ist, die als eine Zeichenfolge für den Controller zu analysieren scheint. Ich habe versucht, diese
"id": "1" and "id": "10"
hat nicht funktioniert. Ich tat dies in der Steuerung
Dies funktioniert auch nicht. Ich bin total ratlos. Wie bekomme ich die individuellen IDs aus den Daten? In der Tat habe ich bemerkt, dass ich die ID zu 11 oder 12 oder 13 usw. ändern kann und es immer noch beide Datensätze zurückgibt?
Jede Hilfe wird geschätzt.
Können Sie bestätigen, dass '$ scope.whichPerson 'richtig zugeordnet ist? –
Ja, alles funktioniert einwandfrei. Wenn ich den Filter auf "Name" ändere, funktioniert alles gut, aber nicht mit der ID und ich kann nicht herausfinden, warum – boony
@kolli richtig ist, müssen Sie einen Komparator 'Filter hinzufügen: {id: whichPerson}: true', einfach machen sicher '$ scope.whichPerson 'ist eine Ganzzahl, um Ihre json Daten zu entsprechen –