AngularJS : récupérer des données à partir d'un tableau json avec un id

J'ai un fichier json où je suis de stockage d'informations de toutes les personnes dans ma base de données. J'ai fait l'utiliser pour afficher un prénom, un nom dans une page web et je veux ajouter la possibilité d'afficher les détails de chaque personne.

À le faire, je suis l'aide de l'id de la personne comme ceci :

.when('/people/:id', {templateUrl: 'partials/people-detail.html'})

Il fonctionne très bien, j'ai une page générée pour chaque personne, ce qui est agréable. Mais maintenant, j'aimerais obtenir de l'information de la personne en arrière.

La façon la plus simple aurait été d'avoir un fichier json pour chaque personne, mais je n'aime pas particulièrement l'idée d'avoir tant de fichier.
Donc mon idée est de faire une itération sur les gens.fichier json pour trouver la bonne et de l'utiliser, mais ça ne fonctionne pas.

Voici mon controller :

var PeopleController = angular.module ('PeopleController', []);

PeopleController.controller('PeopleDetailCtrl', ['$scope', '$routeParams', '$http',
    function($scope, $routeParams, $http) {
        $scope.search = function() {
            var url = 'data/people.json';
            $http.get(url).success(httpSuccess).error(function() {
                alert('Unable to get back informations :( ');
            });
        }
        httpSuccess = function(response) {
            $scope.persons = response;
        }

        function getById(arr, id) {
            for (var d = 0, len = arr.length; d < len; d += 1) {
                if (arr[d].id === id) {
                    return arr[d];  
                }
            }
        }
        $scope.search();
        $scope.person = getById($scope.persons,$routeParams.id);
    }]);

Bien, peut-être que ma solution est mauvaise car elle ne fonctionne pas, mais je n'ai pas trouver un autre moyen de le faire.

Maintenant, je suis tout à toi 🙂

Merci pour la lecture.

OriginalL'auteur Ryuu | 2014-03-26