我是Angular中ES6语法的新手。我尝试创建服务并使用$http
和LocalStorageModule
当我尝试将两个模块注入我的服务时,我得到的错误是我的语法没有处于严格模式。我做错了什么?
服务/ auth.js
export default class {
constructor($http, localStorageService) {
this.$http = $http;
this.localStorageService = localStorageService;
}
}
服务/ index.js
import angular from 'angular';
import auth from './auth';
export default angular
.module( 'app.services', [] )
.service( 'Authentication', auth )
.name;
使用Angular 1.4.5
答案 0 :(得分:4)
我能够在构造函数中使用'ngInject';
来解决它。
我认为它不起作用,因为当'ngInject'
让Babel转译器知道如何处理这种注射时
export default class {
constructor($http, localStorageService) {
'ngInject';
this.$http = $http;
this.localStorageService = localStorageService;
}
}
答案 1 :(得分:4)
要正确实现这一点,不依赖于转换器,只需在您的类中添加一个静态getter,就像这样......
export class {
constructor($http, localStorageService) {
// Store references to the $http and localStorageService providers
this.$http = $http;
this.localStorageService = localStorageService;
}
static get $inject() {
return ['$http', 'localStorageService'];
}
}
AngularJS将确认给定类的$inject
属性并相应地处理您的依赖注入。