我在我的工廠有一個函數需要第二個執行,我希望調用函數等待輸出完成之前console.log結果。當我運行getCases函數時,我沒有得到輸出,直到我再次點擊它。我想我使用我的承諾是錯誤的。如何等待工廠函數完成並在Angular中處理輸出?
app.factory('cases', function ($q) {
return {
getCases: function() {
var defer = $q.defer();
setTimeout(function(){
output = 'aaaa';
defer.resolve(output);
},1000);
return defer.promise;
}
};
});
function CaseloadCtrl($scope, cases){
$scope.master = {};
$scope.activePath = null;
$scope.getCases = function(){
cases.getCases().then(function(data) {
console.log(data);
});
};
}
按鈕
<button ng-click="getCases()">load cases</button>
這應該工作...'的console.log(數據)'將1秒後調用。無需第二次點擊 –
對,請看下面我的小提琴。你能給我們你的完整代碼嗎? –