У меня есть контроллер и завод. Функция (myfunc) внутри фабрики (searchFactory) вызывается ng-кликом кнопки. после чего я вызываю функцию (waitfunction), которая находится за пределами conntroller. В этой функции используется тайм-аут в 2 секунды, после чего значение изменяется и возвращается контроллеру. Как я могу убедиться, что значение обновляется в контроллере через 2 секунды. JSfiddle: http://jsfiddle.net/zohairzohair4/cRr9K/1334/angularjs: обновить значение переменной После вызова внешней функции таймаута
var search_name
var angularjsapp = angular.module('graphApp', ['ngAnimate', 'ui.bootstrap']);
angularjsapp.factory('searchFactory', function() {
//return $resource('friends.json');
return{
myfunc:function(search_name){
console.log('ok')
keyword_type = 1
loading_value = waitfunction(search_name)
console.log(loading_value)
return loading_value
}
}
});
angularjsapp.controller('AccordionDemoCtrl', function($scope,searchFactory) {
$scope.count = 0;
$scope.namesPerPage = 10
$scope.currentPage = 1;
$scope.searchFactory = searchFactory.myfunc
});
function waitfunction(search_name){
value = 0
window.setTimeout(function() {
value = 1;
}, 2000);
return value
};
Звучит как дубликат этого http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous-call – elclanrs