Я знаю, что Angular может обрабатывать промисы внутри контроллеров. Например:
function MyCtrl($scope) {
$scope.myvar = getDeferredPromise();
}
Основной цикл дайджеста angular обрабатывает это изящно, присваивая любое значение, которое отложенная функция наконец возвращает позже, myvar.
Однако, хотя метод $http.get() возвращает обещание, я не могу заставить его работать таким образом. Например:
function MyCtrl($scope, $http) {
$scope.myvar = $http.get('/url');
}
«Обещание», возвращаемое методом get, имеет метод success, который принимает функцию, которой присваиваются данные, которые можно было бы присвоить myvar. .
Однако у него также есть метод then, но ему передается весь объект ответа, а не только часть данных! Это то, что, кажется, в конечном итоге назначается myvar!
Эта скрипка может помочь: http://jsfiddle.net/QKnNC/1/
Я делаю что-то не так здесь? Или это как-то "по дизайну"?