Ich habe einen Controller und eine Fabrik. Eine Funktion (myfunc) in der Factory (searchFactory) wird durch einen Klick auf eine Schaltfläche aufgerufen. danach rufe ich eine Funktion (waitfunction) auf, die außerhalb des Controllers liegt. In dieser Funktion wird eine Zeitüberschreitung von 2 Sekunden verwendet und dann wird ein Wert geändert und an die Steuerung zurückgegeben. Wie kann ich sicherstellen, dass der Wert nach 2 Sekunden im Controller aktualisiert wird? JSfiddle: http://jsfiddle.net/zohairzohair4/cRr9K/1334/angularjs: Aktualisiere Wert einer Variablen Nach externem Timeout Funktion Call
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
};
Klingt wie ein dup von diesem http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call – elclanrs