Angular 12 中未定义注入服务的实例
Instance of the injected service is undefined in Angular 12
Angular版本:12.0.1
我已经为一个组件创建了一个服务,我的要求是暂时只将该服务与该组件一起使用。当我在组件中注入服务并尝试访问它的实例时,它是未定义的。这是第一次在 ngOnInit 中,它是可访问的,但在其他地方未定义。
组件中的相关代码:
@Component({
selector: 'app-component',
templateUrl: './app-component.component.html',
styleUrls: ['./app-component.component.scss'],
providers : [MyService]
})
export class AppComponent implements OnInit {
...some declarations and initializations
constructor(private myService: MyService) {}
ngOnInit(): void {
this.myObservable$ = this.myService?.getSomething('/');
}
functionCalledFromTemplaceButtonClick(item : any){
// The service is undefined here
return this.myService.getSomething(item);
}
}
来自服务的相关代码:
@Injectable({
providedIn: 'root',
})
export class MyService {
constructor(
private httpClient: HttpClient,
) {}
getSomething(item: any) {
// Makes an api call here
}
}
我在模块中也提供了服务 - MyService。
None 个现有问题已得到帮助,请寻求帮助。
我删除了我拥有的方法并将其替换为箭头函数并在顶部声明和定义,如下所示:
public functionCalledFromTemplaceButtonClick =(item : any) =>{
// The service has the context here
return this.myService.getSomething(item);
}
Angular版本:12.0.1
我已经为一个组件创建了一个服务,我的要求是暂时只将该服务与该组件一起使用。当我在组件中注入服务并尝试访问它的实例时,它是未定义的。这是第一次在 ngOnInit 中,它是可访问的,但在其他地方未定义。
组件中的相关代码:
@Component({
selector: 'app-component',
templateUrl: './app-component.component.html',
styleUrls: ['./app-component.component.scss'],
providers : [MyService]
})
export class AppComponent implements OnInit {
...some declarations and initializations
constructor(private myService: MyService) {}
ngOnInit(): void {
this.myObservable$ = this.myService?.getSomething('/');
}
functionCalledFromTemplaceButtonClick(item : any){
// The service is undefined here
return this.myService.getSomething(item);
}
}
来自服务的相关代码:
@Injectable({
providedIn: 'root',
})
export class MyService {
constructor(
private httpClient: HttpClient,
) {}
getSomething(item: any) {
// Makes an api call here
}
}
我在模块中也提供了服务 - MyService。
None 个现有问题已得到帮助,请寻求帮助。
我删除了我拥有的方法并将其替换为箭头函数并在顶部声明和定义,如下所示:
public functionCalledFromTemplaceButtonClick =(item : any) =>{
// The service has the context here
return this.myService.getSomething(item);
}