我有一个布局组件,需要在其中注入服务。但服务未定义。这是我的代码:
import {BaseLayout, LogEvent, Layout} from "ts-log-debug";
import {formatLogData} from "@tsed/common/node_modules/ts-log-debug/lib/layouts/utils/inspectUtils.js";
import { StorageService } from './StorageService';
import { IBasicLayoutConfiguration } from "@tsed/common/node_modules/ts-log-debug/lib/layouts/interfaces/BasicLayoutConfiguration";
@Layout({name: "customJson"})
export class JsonLayout extends BaseLayout {
constructor(config : IBasicLayoutConfiguration , private storageService : StorageService) {
super(config);
}
transform(loggingEvent: LogEvent, timezoneOffset?): string {
const log = {
Id:{ Id: () => {
return this.storageService && this.storageService.getId() || '';
},
},
context: context
};
log.data = log.data.map((data) => formatLogData([data]));
return JSON.stringify(log) + (this.config["separator"] || "");
};
}
我在app.module.ts文件的providers数组中拥有该服务。我究竟做错了什么 ?
答案 0 :(得分:0)
如果您有一项服务,则需要将其注入角度组件:
1)创建一个使用@Injectable()注释的服务,如下所示
@Injectable()
export class StudyService
2)您必须像在使用StorageService一样将其注入组件构造函数中:
constructor(private studyService: StudyService){}