【发布时间】:2019-01-11 11:16:18
【问题描述】:
我正在构建一个网络应用程序并创建了一个服务:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class ModuleService {
constructor(private startTime: number = 8, private endTime: number = 12) { }
get start() {
return this.startTime;
}
get end() {
return this.endTime;
}
set start(startTime) {
this.startTime = startTime;
}
set end(endTime) {
this.endTime = endTime;
}
}
当我将它注入组件时,出现以下错误:
ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[Number]:
StaticInjectorError(Platform: core)[Number]:
NullInjectorError: No provider for Number!
Error: StaticInjectorError(AppModule)[Number]:
StaticInjectorError(Platform: core)[Number]:
NullInjectorError: No provider for Number!
当我从构造函数中删除属性时,它会起作用
export class ModuleService {
startTime = 8;
endTime = 12;
constructor() { }
我在这里读到https://angular.io/guide/dependency-injection#non-class-dependencies,当它是非类依赖项(在我的情况下是一个数字)时,我必须注入一个 InjectionToken。所以我的问题是哪个是最好的方法,是通过创建 injectionToken 还是像我上面那样声明属性?
【问题讨论】:
标签: angular typescript