$ q와 약속을 사용하는 것과 관련이 있다는 것을 알았지 만 몇 시간 동안 사용해 본 결과 내 예제에서 어떻게 작동하는지 아직도 알 수 없습니다 .데이터 수신 후 각도 서비스/공장 반환
내가 원하는 데이터가있는 .json 파일이 있습니다. 나는 이드를 가진 사람들의 목록을 가지고있다. 내가 가지고있는 json 파일을 http.get 할 매개 변수를 쿼리 할 수있는 서비스 또는 팩토리를 갖고 싶습니다. 매개 변수를 기반으로 필터링 한 다음 컨트롤러로 다시 보냅니다. 내 main.js 내부
angular
.module("mainApp")
.controller('personInfoCtrl',['$scope', '$stateParams', 'GetPersonData', function($scope, $stateParams, GetPersonData) {
$scope.personId = $stateParams.id; //this part work great
$scope.fullObject = GetPersonData($stateParams.id);
//I'm having trouble getting ^^^ to work.
//I'm able to do
//GetPersonData($stateParams.id).success(function(data)
// { $scope.fullObject = data; });
//and I can filter it inside of that object, but I want to filter it in the factory/service
}]);
나는
//angular.module(...
//..a bunch of urlrouterprovider and stateprovider stuff that works
//
}]).service('GetPersonData', ['$http', function($http)
{
return function(id) {
return $http.get('./data/people.json').then(function(res) {
//I know the problem lies in it not 'waiting' for the data to get back
//before it returns an empty json (or empty something or other)
return res.data.filter(function(el) { return el.id == id)
});
}
}]);
필터링의 구문을하고 컨트롤러의 모든 때 모든 것이 잘 작동하지만, 나는 그렇게 여러 컨트롤에서 동일한 코드를 사용하려면 나는 그것을 서비스 (또는 공장, 그냥 컨트롤러가 '깨끗한'보고 싶어)에 나가려고 노력하고있어. 정말 컨트롤러에 "GetPersonData를"주입 할 수 꿔
, 다음 서비스에 필터 기능에 구문 문제가 될 것 같습니다 JSON
콘솔을 점검하고 오류를 확인 했습니까? 코드에 구문 오류가있는 것 같습니다. '.service ('GetPersonData', [ '$ http', function ($ http) { return function (id) { return $ http.get ('./ data/people.json').) 필터 함수의 return 문이 꺼져 있습니다. – PSL
@PSL 아마도 이것은() 질문에 대한 최소한의 실행 가능한 코드를 작성하려고 노력하고 있습니다. 오류가 발생하지 않고 그냥 빈 객체를 반환합니다. –