0
裏面我有這樣的服務在AngularJS:
this.getProductsSiteService = function(idSite)
{
return $http.get(BASE_URL + 'obtener/productos/sitio/'+idSite);
}
它工作正常。我用下面的方法供消費的服務:
$scope.getProducts = function()
{
auth.getSiteInfo().then(function(resp)
{
auth.getProductsSiteService(resp.data.idSite).then(function(response)
{
var json = angular.fromJson(response.data.Respuesta);
$scope.products = json.Table;
});
});
};
此代碼工作正常,我在HTML temnplate與ng-repeat
指令顯示$scope.products
的數據,但我有這個問題。 當我想在同一個控制器的其他方法中使用$scope.products
時,它總是空的。我打電話$scope.getProducts()
方法,之後我使用console.log($scope.products)
,它總是[]
。 我做了一個測試,我認爲這是因爲$scope.products
在服務裏面,它使用.then
來解決這個承諾。
任何人都知道如何解決這個問題?我需要在控制器的其他方法中使用$scope.products
。
也許你正試圖接取'$ scope.products'承諾解決之前。你可以在'$ scope.getProducts'中返回承諾並使用'then'來確保'$ scope.prodcuts'有數據 – taguenizy
你在哪裏調用console.log($ scope.products)? $ scope.getProducts調用之後? – user449689
是的,我認爲這是問題,承諾還沒有解決。感謝您的評論。 –