title: Do Angular JS $http promises to behave like true $q promises?
body: <p>I'm aware that Angular can handle promises from within controllers.  For example:</p>
  
  <pre><code>function MyCtrl($scope) {
    $scope.myvar = getDeferredPromise();
  }
  </code></pre>
  
  <p>The main angular digest loop handles this gracefully, assigning whatever value the deferred function finally returns later to <strong>myvar</strong>.</p>
  
  <p>However, although the <strong>$http.get()</strong> method returns a promise, I cannot get it to work in this way.  For example:</p>
  
  <pre><code>function MyCtrl($scope, $http) {
    $scope.myvar = $http.get('/url');
  } 
  </code></pre>
  
  <p>The 'promise' the get method returns has a <strong><em>success</em></strong> method which takes a function that is assigned the data that one would wish to assign to <strong>myvar</strong>.</p>
  
  <p>However, it also has a <strong><em>then</em></strong> method - but that is given the entire response object - not just that data part!  This is what seems to end up getting assigned to <strong>myvar</strong>!</p>
  
  <p>This fiddle may help: <a href="http://jsfiddle.net/QKnNC/1/" rel="nofollow">http://jsfiddle.net/QKnNC/1/</a></p>
  
  <p>Am I doing something wrong here? Or is this somehow 'by design'? </p>