外部 API と通信する Angular アプリがあります。Angular の $resource 呼び出しから初期ビューを生成できます。私の問題は、ng-click で関数を実行するフォームがあることです。次に、その関数は API を再度クエリし、同じスコープ変数を更新することになっていますが、スコープ変数を更新するための 2 番目の $resource 呼び出しの結果を取得できません。
私のコントローラーでは、これはビューに最初に表示されるデータを取得する最初の呼び出しです。
// 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;
});
これまでのところ、ビューが更新され、API が返す JSON と{{ weather.currently.temp }}
{{ geolocation }} 変数内のすべてのデータを表示できます。
ただし、送信時に同じ API に別の要求を行い、新しいデータを返す必要があるフォーム (コントローラーと通信するように適切に設定されています) があります。
// Search functionality
$scope.weatherLookup = function(query) {
$http.get('http://example.com/location/' + query).then(function (value) {
$scope.weather = value;
});
};
この時点で、ビューの {{ weather }} 変数はどこにも更新されません。まったく。値を取得しようとしたときに取得したconsole.log
関数内に関数をスローすると、代わりに同じステートメントで要求すると有効な JSON オブジェクトが取得されます。weatherLookup
undefined
$scope.weather
value
console.log()
その変数を内部にvalue
割り当てて、その値を更新してビューにバブルアップさせるにはどうすればよいですか?$scope.weather
$scope.weatherLookup