将服务注入组件时出现问题。该服务是全局提供的。我在代码编辑器中收到此错误。
无法解析some.component.ts中的SomeComponent的所有参数:(?)。 ng(0)
奇怪的是,我的应用程序可以正常工作,并且编译器不会引发任何错误。
服务
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root',
})
export default class AppService {
constructor(private _http: HttpClient) {}
someMethod() {}
}
Component
import { Component } from "@angular/core";
import AppService from "./app.service";
@Component({
selector: "app-some-component"
})
export class SomeComponent {
constructor(private _appService: AppService) {}
}
我在这里浏览答案,却找不到提供答案的答案。一些答案给出了更改构造函数注入顺序的解决方案。
[经过多次尝试,我发现我犯了一个export default class AppService
错误。
我发现不建议在Angular中使用默认导出,因为AOT无法正常工作。这是涵盖该问题的文章:Why isn't "export default" recommended in Angular?
所以解决方案是始终正常导出类:
服务
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root',
})
export class AppService {
constructor(private _http: HttpClient) {}
someMethod() {}
}
Component
import { Component } from "@angular/core";
import { AppService } from "./app.service";
@Component({
selector: "app-some-component"
})
export class SomeComponent {
constructor(private _appService: AppService) {}
}
希望这可以帮助某人不会像我这样浪费时间。