Как получить конкретные данные из файла JSON с помощью Angular's $ http.get

0

У меня есть файл JSON, у которого есть список пользователей. Я хочу получить только определенного пользователя из списка и отобразить его на индексной странице с помощью Angular. Я много искал, но не могу получить хороший ответ. Список должен находиться в файле JSON, а не в JS файле.

sampleApp.controller('userInfo', ['$scope', '$http', '$log', '$filter',  function($scope, $http, $log,$filter) {
$scope.results = '';

$http.defaults.headers.common['X-Custom-Header'] = 'Angular.js';

$http.get('data/registered-user-list.json').
    success(function(data, status, headers, config) {
        $scope.results = data;
    })
    .error(function(data, status, headers, config) {
        // log error
    });
}]);

Файл JSON:

{ "results": [
{
  "usernumber": "1",
  "userid": "manojsoni",
  "userpassword": "password",
  "useremail": "[email protected]",
  "timestamp": "1:30pm",
  "datestampe": "25/01/2016"
},
{
  "usernumber": "2",
  "userid": "jasmeet",
  "userpassword": "password",
  "useremail": "[email protected]",
  "timestamp": "1:30pm",
  "datestampe": "25/01/2016"
},
{
  "usernumber": "3",
  "userid": "manoj30dec",
  "userpassword": "password",
  "useremail": "[email protected]",
  "timestamp": "1:30pm",
  "datestampe": "25/01/2016"
},
{
  "usernumber": "4",
  "userid": "lavish",
  "userpassword": "password",
  "useremail": "[email protected]",
  "timestamp": "1:30pm",
  "datestampe": "25/01/2016"
}    
]}
  • 0
    Пожалуйста, пройдите это. stackoverflow.com/questions/19706046/… . прочитайте файл. переберите результаты и получите конкретного пользователя.
  • 0
    Проверьте это, я ответил здесь $ http получить, чтобы получить данные Json
Показать ещё 1 комментарий

4 ответа

0

вы можете так использовать

$http.get('data.json').then(function(response) {
    console.log(response);
    $scope.results = response;
},
function(error) {
    $scope.results = [];
    console.log(error);
});
0

Вы не указываете, на каком creatirea вы хотите отфильтровать пользователя.


предупреждение! success и error для $http амортизируются, используйте then вместо этого!

Уведомление об изъятии

$ Http legacy обещает, что методы успеха и ошибки устарели. Вместо этого используйте стандартный метод. Если для параметра $ httpProvider.useLegacyPromiseExtensions установлено значение false, то эти методы будут вызывать ошибку $ http/legacy.

// i will update this function when you provide more details
var getData = function(users){
  for(var i in users{
    if(users[i]["theFieldYouWant"] == theValueYouWant){
        return users[i];
    }   
  }
}

$http({
  method: 'GET',
  url: '/someUrl'
}).then(function successCallback(response) {
            // this callback will be called asynchronously
            // when the response is available
            $scope.results = getData(response);
        },
        function errorCallback(response) {
            // called asynchronously if an error occurs
            // or server returns response with an error status.
        }
    );
0

методы успеха и ошибки устарели.

Вместо этого вы можете использовать 'then'

$http.get('data/registered-user-list.json').then(function(response) {
    if (response.status == 200) {
        $scope.results = data;
    } else {
        // log error
    }
});
  • 0
    ваш ответ какой-то неправильный. Вы можете передать две функции обратного вызова в функцию then. первый за успех, второй за ошибку. см мой ответ опубликован за 1 час до
  • 0
    На самом деле это не так. Метод вызывается, когда доступен ответ. Если ответ имеет статус ошибки, он все еще вызывается.
Показать ещё 7 комментариев
0
$http.get('data.json'). //json file path
        success(function(data, status, headers, config) {
            alert("Success");
           $scope.resutls = data;
        }).
        error(function(data, status, headers, config) {
            alert("Error");
          // log error
        });

Подобный вопрос я ответил здесь

Http файлы для json файлов и отображения

В последнем цикле результат и получить данные/пользователя, который вам нужен.

  • 1
    предупреждение! Успешность и ошибка для $ http устарели, используйте вместо этого! смотри официальный документ
  • 0
    Спасибо!! Я знал оба пути, но никогда не замечал, что успех и ошибка устарели.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню