데이터베이스에있는 모든 사람들의 정보를 저장하는 json 파일이 있습니다. 사실 웹 페이지의 이름과 성을 표시하는 데 사용하고 모든 사람의 세부 정보를 표시 할 가능성을 추가하고 싶습니다. AngularJS : ID가있는 json 배열에서 데이터 가져 오기
그래서 나는이 같은 사람의 ID를 사용하고 수행합니다.when('/people/:id', {templateUrl: 'partials/people-detail.html'})
그것은 꽤 잘 작동, 내가 좋은 모든 사람을 위해 생성 된 페이지가 있습니다. 하지만 지금은 그 사람의 정보를 되찾고 싶습니다.
가장 쉬운 방법은 모든 사람을위한 json 파일을 가지고 있었을 것이지만, 나는 많은 파일을 가지고 있다는 생각을별로 좋아하지 않습니다. 내 생각은 people.json 파일을 반복하여 좋은 파일을 찾고 사용하는 것이지만 작동하지 않습니다. 그것이 작동하지 않기 때문에 어쩌면 내 솔루션이 나쁜, 잘
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);
}]);
,하지만 난 그렇게 할 다른 방법을 찾을 수 없습니다 :
여기 내 컨트롤러입니다.
지금은 모두 당신입니다. :)
감사합니다.
덕분에, 작동! 가장 좋은 해결책인지는 모르겠지만 (매번 1000 번 반복해야한다면 정말 멋지다 ^^) 그래도 작동합니다. 글쎄, 나는 then() 메서드의 유틸리티를 정말로 이해하지 못한다. 유일한 차이점은 약속을 기다리는 것입니다. success()가 약속을 반환하는지 확실하지 않더라도이 경우에는 error() 메서드를 사용하여이 문제를 관리 할 수 있습니다. – Ryuu
성공하면 성공으로 약속이 반환됩니다. 더 많은 것을 알고 싶다면 약속을 읽어야합니다. 잘 문서화 된 자바 스크립트 원리입니다. ID로 가져 오기위한 솔루션 : 더 나은 옵션은 json 파일이 아닌 데이터베이스에 정보를 저장 한 다음 서버에 API를 노출하여 해당 데이터베이스를 직접 쿼리하는 것입니다. –
나는 그것을 찾을 것이다, 고마워. 데이터베이스와 서버를 사용하는 것이 첫 번째 아이디어 였지만 응용 프로그램은 오프라인으로 작동해야하기 때문에 (코드바가있는 모바일 응용 프로그램) 모든 항목을 로컬에 저장하고 서버에 요청하여 파일을 업데이트 할 수있는 가능성을 추가합니다. – Ryuu