我有一项服务正在调用 UPS api 并返回一个承诺。请求和返回平均需要大约 3-4 秒。返回后,我试图为 $scope.printOrder 设置一个范围。Angular 似乎没有接受这么长的等待时间。我有什么选择让 Angular 等待请求,或者是我做错了什么。
谢谢
服务
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>