我在Angular 2项目中使用ui-router。进入状态时,我需要调用服务中的函数来进行更新。我的代码是这样的:
import { dataService } from '../data.service';
export const stateA = {
name: 'stateA',
url: '',
onEnter: function(trans, state, dataService) {
dataService.update();
}
}
然而,我似乎无法以这种方式将dataService注入onEnter。谁知道正确的方法呢?谢谢!
答案 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