[英]Trying to inject $window into angular factory using typescript
我试图将$ winow注入我的工厂。
这是我的工厂和班级定义
export interface IAuthToken {
}
export class AuthToken implements IAuthToken {
storage: Storage;
constructor(private $window: ng.IWindowService) {
this.storage = this.$window.localStorage;
}
factory.$inject = ['$window'];
function factory($window: ng.IWindowService): IAuthToken {
return new AuthToken(this.$window);
}
angular
.module('test')
.factory('app.common.auth.AuthToken', factory);
}
当我调试代码时,$ window始终设置为undefined。 我已经尝试在注册工厂本身时添加注入,但是仍然得到未定义的$ window?
function factory($window: ng.IWindowService): IAuthToken {
return new AuthToken(this.$window);
}
angular
.module('test')
.factory('app.common.auth.AuthToken', ['$window',factory]);
任何帮助将不胜感激。 提前致谢。
你快到了。 您需要将工厂声明移到AuthToken
类的外部并在其下方。 您可以更改为:
```
export interface IAuthToken {}
export class AuthToken implements IAuthToken {
static Id: string = 'app.common.auth.AuthToken';
storage: Storage;
constructor(private $window: ng.IWindowService) {
this.storage = this.$window.localStorage;
}
}
function factory($window: ng.IWindowService): IAuthToken {
return new AuthToken($window);
}
angular
.module('test')
.factory(AuthToken.Id, ['$window', factory]);
```
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.