[英]Ionic get integer ID from JSON data
這應該是一件非常簡單的事情。 我正在使用JSON數據文件構建IONIC應用程序。 數據是這樣的。
[
{ "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;
}),
}])
這僅按名稱顯示男性所需的數據。
但是,如果我想使用以下代碼查看個人簡歷
<div class="card" ng-repeat="person in people | filter: { id: whichPerson }">
<h2>{{ person.name }}</h2>
<p>{{ person.bio}}</p>
</div>
當我單擊每個人的單個項目以顯示person.bio時,我會同時看到John和Mary。
我認為這是因為“ id”分別是1和10,似乎已解析為控制器的字符串。 我試着把這個
"id": "1" and "id": "10"
不工作。 我在控制器中做到了
$scope.whichPerson = parseInt($state.params.id, 10);
這也不起作用。 我完全陷入了困境。 如何從數據中獲取個人ID? 實際上,我注意到我可以將id更改為11或12或13等,並且它仍然返回兩條記錄?
任何幫助表示贊賞。
鑒於上述方法無效,您可以嘗試通過以下方式嘗試使用自定義過濾器:
filter: { id: whichPerson }:sameID
然后在您的控制器中:
$scope.sameID = function(actual, expected) {
return parseInt(actual) === parseInt(expected)
};
即使這不起作用,您也可以至少在自定義過濾器中進行調試,以查看比較失敗的地方
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.