我無法圍繞異步請求的概念包裝我的大腦。AngularJS:使用回調和承諾
我有我的看法,這是從一個供應商創建一個對象實例的控制器:
va.controller('VaCtrl',function($scope,$shipment){
$scope.shipment = $shipment.Shipment();
});
提供者:
Shipment.provider('$shipment',function(){
this.$get = function($http){
function Shipment(){
}
Shipment.prototype.fetchShipment = function(){
var shipment = undefined;
$http.post('../sys/core/fetchShipment.php',{
// some data to POST
}).then(function(promise){
shipment = promise.data;
});
return shipment;
};
return {
Shipment: function(){
return new Shipment();
}
}
}
});
我的目標是獲得對數據的訪問從我的控制器裏面的Shipment.prototype.fetchShipment()
。我的方法:
$scope.fetchShipment = function(){
var shipment = $scope.shipment.fetchShipment();
console.log(shipment); // undefined
};
但是,這將返回undefined。
我讀了關於$ q,並推遲,承諾和回調,現在我就像跆拳道;我想要做的就是將檢索到的數據推送到我的控制器,這樣做的最佳方式是什麼?
天哪,我欠你一個。如果你有一個,我會非常感謝鏈接到進一步的解釋,因爲目前,我看到這個工程,但沒有理解 – user2422960
更新的小解釋背後的概念,並鏈接到一些文檔 –
爲什麼你要設置$ scope。 fetchShipment與prototype.fetchShipment具有相同的名稱? – FutuToad