2016-09-22 69 views
0

我有一個其中有一個數組JSON文件:AngularJS HTTP服務參數

{ 
    "people": [ 
    {"number":"1", "name":"Gary", "surname":"Peterson", "age":"25"}, 
    {"number":"2", "name":"Andy", "surname":"Smith", "age":"26"}, 
    {"number":"3", "name":"Michael", "surname":"Johnson", "age":"28"} 
    ] 
} 

我只想返回第一個對象(人記錄)我的應用程序。 當我調用AngularJS HTTP服務,並傳遞參數,如:

angular.module('mod', []) 
.controller('ctrl', function($scope, $http){ 

    $scope.serviceMethod = function(){ 
    $http.get("url to database.json", {params: {number: 1}}) 
    .then(function Succes(response) {$scope.person = response.data.people;});};  

}); 

返回三個對象。我看不出有什麼錯誤,在控制檯(狀態200)的控制檯和參數傳遞(它建立這個網址:http://urltowebsite.com/database.json?number=1)。

我在這裏錯過了什麼?

+1

怎樣的角度知道它shouild在'number'屬性篩選? – devqon

+0

據我所知它是服務器端任務沒有做角內或你可以分配返回的JSON的第一個元素像'$ scope.person = response.data.people [0]' –

回答

0

如果你只想要第一人的記錄,你可以嘗試這樣的事:

$scope.person = response.data.people[0]; 

如果你想處理這個服務器上,你需要你的後端API來處理它,只有返回人數組的第一個對象。

+0

這不是一個問題的答案。這是一個快速修復。 –

+0

是的,這需要一些後端修補程序。 –

+0

是的,但重點不在於每次撥打服務時都會返回所有數據。如果不能這樣做,那麼參數的用法是什麼? – vdangre

0

不能使用參數訪問JSON文件。您從JSON正確的,現在你可以在你想顯示什麼視圖站點選擇已經獲取的數據。

1

在你的問題,你說你有一個包含記錄(我相信這是在服務器端)一個JSON文件,你想這個記錄的話,被這個JSON文件過濾才把我的回答將是JSON文件沒有能夠過濾其記錄。

的,你需要的服務器端應用程序,它讀取這個請求

http://urltowebsite.com/database.json?number=1

,且該服務器端應用程序將訪問JSON文件,篩選記錄,並只返回特定記錄AngularJS。

那麼你不需要任何邏輯在AngularJS側來篩選記錄。

1

根據您的要求,您應該使用服務器端語言,根據number屬性過濾數據庫記錄並創建結果的json object

我使用PHP理解的功能:

角代碼:

angular.module('mod', []) 
.controller('ctrl', function($scope, $http){ 

    $scope.serviceMethod = function(){ 
    $http.get("getRecord.php", {number: 1}) 
    .then(function Succes(response) {$scope.person = response;});};  

}); 

getRecord.php:

<?php 

$data = json_decode(file_get_contents("php://input")); 
$number = $data->number; 

$con = mysql_connect('localhost', 'root', ''); 
mysql_select_db('db_name', $con); 

$query = 'select * from table_name WHERE number = 1'; 
$query_result = mysql_query($query); 
$res = mysql_fetch_assoc($query_result); 

do 
{ 
    $resultdata[] = $res; 
}while($res = mysql_fetch_assoc($query_result)); 
echo json_encode($resultdata); 

mysql_close($con); 
?> 

或者只有當你想第一個記錄從JSON然後你嘗試這一個。

$scope.person = response.data.people[0]; 

我希望它能工作。謝謝。