AngularJS:后台流程

时间:2015-11-14 09:53:59

标签: javascript angularjs

我有一个有角度的应用程序,我想添加一个没有任何视图的后台进程。它所做的只是定期调用web服务并对其做一些事情,没有UI。

快速而简单的方法是简单地将代码放在window.onLoad中。但是,我应该考虑采用角度方式吗?如果是这样,我是否将代码放入服务中?我最初如何“开始”这项服务?

3 个答案:

答案 0 :(得分:1)

你自己回答,服务是正确的选择,你可以把它注入你在应用程序上的任何控制器,如果不是这样,你没有控制器(或指令),那么你可以在angular.run

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

答案 1 :(得分:1)

这是一个简单的概念,它可能有小问题,但你会明白这一点。

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

从html和引导程序

中删除ng-app标记

如果后台进程是ng模块,那么使用angular.module('name').run();否则使用自引导技术

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 :<
    }
});

答案 2 :(得分:0)

我认为您正在寻找的是

app.run()

当角度应用程序启动时会调用它

请参阅https://docs.angularjs.org/api/ng/type/angular.Module