 <p><em>Here is a <strong>practical answer</strong>, courtesy of user <a href="http://stackoverflow.com/users/4573999/kirill-slatin">Kirill Slatin</a>. Practical use example at the bottom of the answer.</em></p> <p>If, like me, you need to use that response object as a scope variable, here's the trick:</p> <p>This will return "undefined" in the console, and like me, you probably won't be able to use that response data on your page:</p> <pre><code>$http.get(ArbitraryInput).then(function (response) {$scope.data = response;}); console.log($scope.data); </code></pre> <p>However, this should work:</p> <pre><code> $http.get(ArbitraryInput) .then(function (response) { $scope.data = response; $scope.$apply() }); </code></pre> <p><code>$scope.$apply()</code> is what will persist the response object so you can use that data.</p> <p>-</p> <p><strong><em>Why would you need to do this?</em></strong></p> <p>I'd been trying to create an "edit" page for my recipes app. I needed to populate my form with the selected recipe's data. After making my GET request, and passing the response data to the $scope.form, I got nothing... <code>$scope.$apply()</code> and <a href="http://stackoverflow.com/users/4573999/kirill-slatin">Kirill Slatin</a> helped big time. Cheers mate!</p> <p>Here's the example from my editRecipeController:</p> <pre><code> $http.get('api/recipe/' + currentRecipeId).then( function (data) { $scope.recipe = data.data; $scope.form = $scope.recipe; $scope.$apply() } ); </code></pre> <p>Hope that helps!</p>