Angular がコントローラー内から Promise を処理できることは承知しています。例えば:
function MyCtrl($scope) {
$scope.myvar = getDeferredPromise();
}
メインの angular ダイジェスト ループはこれを適切に処理し、遅延関数が後で最終的に返す値をmyvarに割り当てます。
ただし、$http.get()メソッドは promise を返しますが、この方法で動作させることはできません。例えば:
function MyCtrl($scope, $http) {
$scope.myvar = $http.get('/url');
}
get メソッドが返す「約束」には、myvarに割り当てたいデータが割り当てられた関数を受け取るsuccessメソッドがあります。
ただし、thenメソッドもありますが、データ部分だけでなく、応答オブジェクト全体が与えられます。これは、myvarに割り当てられるように見えるものです!
このフィドルが役立つかもしれません: http://jsfiddle.net/QKnNC/1/
ここで何か間違ったことをしていますか?それとも、これはどういうわけか「設計による」ものですか?