我有一个Angular应用程序,我正在使用ui-router。
我需要先在我的应用程序开头调用我的服务,然后才能运行。
有没有办法在不使用app.run的情况下调用app.js文件中的服务?或者除了我的app.js文件之外还有更好的解决方案吗?
答案 0 :(得分:2)
查看ui-router https://github.com/angular-ui/ui-router/wiki/Quick-Reference的解析功能。您只需在状态中添加另一个名为“resolve”的字段,然后就可以在那里注入服务。通过使用解析,此路由将在此解析完成后才会执行。
我在应用程序中有类似的东西,我创建了一个抽象状态供其他人继承,因此,在初始解析函数完成之前,没有任何状态被注册。
实施例。
$stateProvider.state('someState', {
template: 'someTemplate.html',
controller: 'someController',
resolve: {
authenticate: function(AuthSrv){
//Do stuff with AuthSrv in here
}
}
})