각도 API가 외부 API와 통신하고 있습니다. Angular $ 리소스 호출에서 초기 뷰를 생성 할 수 있습니다. 내 문제는 ng-click에서 함수를 실행하는 양식이 있다는 것입니다. 그런 다음이 함수는 API를 다시 쿼리하고 동일한 범위 변수를 업데이트해야하지만 두 번째 $ 리소스 호출의 결과를 가져 와서 범위 변수를 업데이트 할 수는 없습니다. 내 컨트롤러에서
이 처음 뷰에 표시 데이터 취득이 초기 호출입니다 :
// Initial weather and geolocation data var Weather = $resource('http://example.com/:method'); Weather.get({method: 'current'}).$promise.then(function(weather) { // Success $scope.weather = weather.weather; $scope.geolocation = weather.location; }, function(error) { // Failure $scope.weather = error; });
지금까지 너무 좋아, 뷰 업데이트와 내가 보여줄 수있는 JSON이를 API는 {{ weather.currently.temp }}
과 {{geolocation}} 변수의 모든 데이터로 다시 전송됩니다. 이 시점에서
// Search functionality $scope.weatherLookup = function(query) { $http.get('http://example.com/location/' + query).then(function (value) { $scope.weather = value; }); };
:
는 그러나, 나는 (제대로 컨트롤러에 이야기하도록 설정되어 있습니다) 제출시 그 같은 API에 또 다른 요청을하고 새로운 데이터를 반환해야 양식을 가지고 ,보기에서 {{weather}} 변수는 아무데도 업데이트되지 않습니다. 조금도. 함수 내에서 console.log
함수를 던지면 undefined
값을 얻으려고 시도 할 때 $scope.weather
값을 얻지 만 value
같은 console.log()
문을 대신 요청하면 유효한 JSON 개체를 얻습니다.
내 변수를 안에있는 $scope.weather
에 할당하면 해당 값을 업데이트하여 뷰에 맞출 수 있습니다.