我可以在角度ui-router中调用服务的第一个位置在哪里?

时间:2015-03-24 17:29:57

标签: angularjs angular-ui-router

我有一个Angular应用程序,我正在使用ui-router。

我需要先在我的应用程序开头调用我的服务,然后才能运行。

有没有办法在不使用app.run的情况下调用app.js文件中的服务?或者除了我的app.js文件之外还有更好的解决方案吗?

1 个答案:

答案 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
        }
    }
})