我有一個服務正在呼叫UPS api並返回一個承諾。請求和回報平均需要3-4秒。返回後,我試圖爲$ scope.printOrder設置一個範圍。看起來Angular在這麼長的等待時間裏並沒有發生變化。我有什麼選擇讓Angular等待這個請求,還是我正在做其他事情呢?Angularjs:在http請求中等待很長時間後設置/返回作用域
感謝
服務
ordersApp.factory('upsPrint', function ($http, $q)
{
return {
upsPrint: function (order)
{
var deferred = $q.defer();
$http.post('orders/upsPrint',{order: order}).success(function(data)
{
deferred.resolve(data);
});
return deferred.promise;
}
};
});
控制器
$scope.printOrder = function (order)
{
$scope.printingOrder = upsPrint.upsPrint(order);
$scope.printingOrder.then(function(upsPrint){
$scope.printedOrder = upsPrint.printedOrder;
console.log($scope.printedOrder);
});
};
查看
<div ng-controller="ordersCtrl">
<div ng-model="printedOrder">
{{printedOrder}}
</div>
</div>
是否超時? – zsong
不會超時。它通過console.log($ scope.printedOrder) – Bungdaddy
確認返回數據,所以,我隨即將$ scope.printedOrder更改爲$ scope.printLabel。有$ scope.printedOrder和upsPrint.printedOrder似乎是問題......需要我的頭圍繞那一個。 – Bungdaddy