0

我正在尝试重构现有的 Angular-Project 以使用 ES6-Modules 和import语句。这适用于大多数应用程序,但resolve我的路线中的块给我带来了麻烦。

据我所知,语法应该和以前一样:

$stateProvider.state('stateName'), {
    template: <div></div>
    controller: 'stateCtrl'
    controllerAs: 'ctrl'
    resolve: {
        someData: ['DataService', function(DataService){
            return DataService.getData();
        }]
    }
}

但是,在中设置断点someData告诉我,我的“DataService”没有通过 angulars 依赖注入正确解析(或者更确切地说:它已正确解析,但尚未初始化)。someData该服务在相应的模块上注册,但在进入-function之前没有调用它的构造函数。

因为我认为我的语法有误,所以我做了一些实验,发现一些其他服务(使用相同的语法创建并在与DataService.

你知道在哪里看或我如何解决这个问题吗?

4

1 回答 1

1

如果你使用的是 ES6,它应该是这样的:

/* @ngInject */
export default function config($stateProvider) {
  resolve: {

    /* @ngInject */
    someData: (DataService) => DataService.getData()
  }
}

要了解更多关于 ngInject 的信息,请参阅ng-annotate github 页面。它为您进行注射。

于 2016-11-17T08:28:57.337 回答