簡體   English   中英

Ionic從JSON數據獲取整數ID

[英]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等,並且它仍然返回兩條記錄?

任何幫助表示贊賞。

嘗試按照文檔中的說明將比較器:true添加到過濾器中。 這將強制比較過濾器值,而不僅僅是檢查數據是否包含該值。

鑒於上述方法無效,您可以嘗試通過以下方式嘗試使用自定義過濾器:

filter: { id: whichPerson }:sameID

然后在您的控制器中:

$scope.sameID = function(actual, expected) {
        return parseInt(actual) === parseInt(expected)
    };

即使這不起作用,您也可以至少在自定義過濾器中進行調試,以查看比較失敗的地方

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM