非同期リクエストの概念に頭を悩ませることができません。
プロバイダーからオブジェクト インスタンスを作成するビュー用のコントローラーがあります。
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 と defers、promise、callbacks について読みましたが、今では WTF のようです。私がやりたいのは、取得したデータをコントローラーにプッシュすることだけです。これを行うための最良の方法は何ですか?