Gri*_*rii 4 javascript angularjs angularjs-service angularjs-factory
在我的Angular应用程序中,我添加了跟踪功能,它应该作为单独的插件工作,因此如果包含在HTML Angular中的脚本应该创建服务并初始化(运行)它.插件是服务,因为它具有强制依赖性$rootScope.为了实现我选择使用Angular工厂,就像(代码在myservice.js):
angular.module('app').factory('mysevice', ['$rootScope', '$interval', serviceFunc]);
function serviceFunc($rootScope, $interval) {
return {
run: function () { ... }
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有问题如何立即初始化它.我的解决方案是增强Angular app run功能(代码在myservice.js中):
window.app.run(['mysevice', function (srvc) {
srvc.run();
}]);
Run Code Online (Sandbox Code Playgroud)
app在单独的主app.js文件中定义的位置如下:
var app = window.app = angular.module('app', [...]);
app.run(['$state', 'breeze', ...,
function ($state, breeze, ...) { ..real initialization.. }
Run Code Online (Sandbox Code Playgroud)
代码工作正常.这两个主要run和run用于myservice通话的罚款.应用程序与服务一起运行良好,但代码看起来很难看,特别是将应用程序存储在全局窗口对象中并组播该run功能.
是否有更好的方法来执行Angular服务并在应用程序启动后立即初始化它与其他一些Angular服务依赖项.
你可以打电话angular.module('app').run(function(){...}).所以你不再需要一个全局变量了.
例:
angular.module('app').run(['mysevice', srvc.run.bind(srvc)]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9812 次 |
| 最近记录: |