これは非常に簡単なことです。私はJSONデータファイルを使ってIONICアプリケーションを構築しています。データはこのようなものです。JSONデータのIonic get整数ID
[
{ "id": 1,
"name": "John",
"type": "male",
"bio": "this is John"
},
{ "id": 10,
"name": "Mary",
"type": "female",
"bio": "this is Mary"
}
]
ここでデータで "タイプ"でフィルタリングし、データを "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>
このためのコントローラは次のとおりです。
.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;
}),
}])
これは名前だけで、男性の必要なデータを表示します。しかし
私は私がジョンとメアリーの両方を取得person.bio表示するには、それぞれの人のために、個々の項目をクリックすると、次のコード
<div class="card" ng-repeat="person in people | filter: { id: whichPerson }">
<h2>{{ person.name }}</h2>
<p>{{ person.bio}}</p>
</div>
を使用して個々のバイオを見たい場合は。」
"id"が1と10でコントローラの文字列として解析されているように見えるため、これが原因であると考えました。私はこれを置こうとしました
"id": "1" and "id": "10"
うまくいきませんでした。私はコントローラでこれを行なった。
$scope.whichPerson = parseInt($state.params.id, 10);
これはうまくいきません。私は完全に困惑しています。データから個々のIDを取得するにはどうすればよいですか?実際に私はidを11または12または13などに変更することができ、それでも両方のレコードを返すことに気付きましたか?
助けてください。
'$ scope.whichPerson'が正しく割り当てられていることを確認できますか? –
はい、すべて正常に動作しています。私がfilterを "name"に変更した場合、idは正しくないが、なぜ – boony
@kolliが正しいのか分からないので、コンパイラ 'filter:{id:whichPerson}:true'を追加する必要があります。 '$ scope.whichPerson'はあなたのjsonデータと一致する整数です。 –