調用服務後,我的變量沒有值。我定義的成功,函數作爲一個單獨的功能,並把它稱爲在.then()
方法,下面的代碼:如何用服務填充變量值(AngularJS)
// Code inside the Ctrl:
var successData = null;
vm.fillVar = null;
vm.loadData = loadData;
// service func
function loadData() {
return $timeout(function() {
vm.fillVar = vm.fillVar || [];
if (vm.fillVar == undefined || vm.fillVar.length == 0) {
CrudSvc.GetAllData().$promise.then(success, error);
console.log('Success Variable: ', successData); //--> here, the successData variable contains no data
vm.fillVar = successData;
console.log('fillVar for the view: ', vm.fillVar); //--> fillVar is empty, why??
}
}, 500);
}
// success func
function success(res) {
console.log('var res: ', res); //--> res contains data
successData = res;
console.log('success func: ', successData); //--> the variable contains data
}
我不明白爲什麼successData變量調用成功函數之後空。這有點令人困惑......有沒有人可以解決這個問題?
u能張貼代碼爲CrudSvc.GetAllData() –
何不你是不是在'function success'裏面設置'vm.fillVar',並避免使用'successData'變量 – codtex
你期望同步執行不是異步的呼叫。希望你知道核心JS – Nirus