/ / AngularJS: processo in background - javascript, angularjs

AngularJS: processo in background - javascript, angularjs

Ho una app angolare e vorrei aggiungere un processo in background che gira senza alcuna vista. Tutto ciò che sta facendo è chiamare regolarmente un webservice e fare qualcosa al riguardo, senza interfaccia utente.

Un modo veloce e sporco è semplicemente inserire il codicein window.onLoad. Ma dovrei pensare a fare questo il modo angolare? In tal caso, inserisco il codice in un servizio? Come potrei "iniziare" inizialmente questo servizio?

risposte:

1 per risposta № 1

Hai risposto tu stesso, il servizio è la scelta giusta, puoi iniettarlo in qualsiasi controller che hai in app, se non è così e non hai un controller (o una direttiva), puoi farlo in angular.run

angular.module("lookMaMyModule").run(function(injectables){
do something fancy on run
})

1 per risposta № 2

Ecco un semplice concetto per te, potrebbe avere piccoli problemi, ma ti verrà un'idea.

angular.bootstrap2 = function(module, element, callback){
angular.bootstrap(module, element);
callback();
}

rimuovere il tag ng-app da html e l'app bootstrap

Se il processo in background è un modulo, quindi utilizzare angular.module("name").run(); altrimenti usare la tecnica di bootstrap automatico

app.js

angular.module("name", ["deps"]);
angular.bootstrap2(["name"], document.body, function(){
var process_1 = new MyServ();
process_1.start();
});

service.js

var MyServ = function(){
this.intervalId = 0;
this.start = function(){
this.intervalId = setInterval(function(){
console.log("executing");
}, 1000);
}
this.stop = function(){
setInterval.cancel(this.intervalId); //don"t remember api, sorry :<
}
});

0 per risposta № 3

Penso che quello che stai cercando sia

app.run()

questo viene chiamato quando l'app angolare inizia

vedere https://docs.angularjs.org/api/ng/type/angular.Module