我是angularjs中的新成員,並且作爲啓動器,我在訪問外部對象然後函數時遇到問題。我創建了一個工廠:如何在angularjs中承諾函數外訪問對象
var injectParams = ['$http'];
var address = function ($http) {
var factory = {};
factory.get = function() {
return $http({
method: "POST",
url: '/address',
headers: {
'Content-Type': 'application/json'
},
data: {
service: 'address'
}
});
};
return factory;
}
和控制器方法:
function getAddresses() {
address_factory.get().then(function success(response) {
$scope.billing = response.data.billing;
$scope.shipping = response.data.shipping;
console.log(response.data);
}, function error(x) {
console.log(x);
});
}
getAddresses();
的問題是如何訪問外getAddresses
功能$scope.billing
對象?我已閱讀angularjs承諾,但我不知道如何使用......
是的,你是對的。我理解這種情況發生的原因。你有任何模式建議如何解決它。'要解決它'我的意思是如何使用成功回調內部必要的邏輯? –
@MrAlb沒有什麼可以解決的,這就是Promise的工作原理,所以只需將你的邏輯放在watch-callback或者'address_factory.get'成功回調中(我寧願選擇第二個選項)。另外,如果您對ES2017可以使用,您可以嘗試[異步等待](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function)語法以使代碼更加完善同步等。 – dhilt
也許我不會解釋得很好。我已經在同一個controller中創建了另一個分頁函數.Idea是,我想找到$ scope.billing對象的這個長度,所以我可以在分頁函數中使用。我瞭解promise是如何工作的但如果沒有找到這個對象的長度,我不能做分頁。我很抱歉,我花了你的時間。 –