Angular 2 ui-router:向onEnter注入服务

时间:2017-07-05 22:36:38

标签: angular angular-ui-router

我在Angular 2项目中使用ui-router。进入状态时,我需要调用服务中的函数来进行更新。我的代码是这样的:

import { dataService } from '../data.service';
export const stateA = {
    name: 'stateA',
    url: '',
    onEnter: function(trans, state, dataService) {
        dataService.update();
    }  
}

然而,我似乎无法以这种方式将dataService注入onEnter。谁知道正确的方法呢?谢谢!

1 个答案:

答案 0 :(得分:0)

Angular 2不使用与Angular 1相同的注入方式。只能向DI注册的服务可以自动注入(使用Typescript)

要手动注入,请从转换中获取注入器并获取数据服务(通过在DI中注册的任何令牌)。

CompB

但是,我发现您使用ES6模块导入/导出导入export const stateA = { name: 'stateA', url: '', onEnter: function(trans, state) { const dataService = trans.injector().get('dataService'); dataService.update(); } } 。也许您根本不需要使用DI,因为您已经有了它的参考?

dataService