小编Fro*_*ier的帖子

Angular 9:错误 NG2003:“DataService”类的参数“url”没有合适的注入令牌。找到字符串

在处理我面临的问题的程序时,构造函数及其子类的依赖注入。

  • DataService:一个服务类,它在一个地方拥有所有的 CRUD 操作,还有一个参数化的构造函数,用于从其子类注入端点 URL 和 HTTP。
constructor(private url: string, private http: Http) { }
Run Code Online (Sandbox Code Playgroud)
  • PostService:一个服务类,它扩展了上述 DataService 类以在其中包含 CRUD 操作功能和一个参数化的构造函数,并在内部调用 super(endPointURL, httpObject) ,如下所示:
constructor(http: Http) {
    super('https://jsonplaceholder.typicode.com/posts', http);
}
Run Code Online (Sandbox Code Playgroud)

在此重构之前(移动所有常见的 CRUD 操作并通过子类扩展它),我的代码按预期工作,但在进行上述更改后,我收到以下错误:

Date: 2020-03-22T15:26:23.248Z - Hash: 7130497a38c152c58258
5 unchanged chunks

Time: 1859ms

ERROR in src/app/services/data.service.ts:14:23 - error NG2003: No suitable injection token for parameter 'url' of class 'DataService'.
Found string

14   constructor(private url: string, private http: Http) { }
Run Code Online (Sandbox Code Playgroud)

此外,当我从 Datsource 构造函数中删除url参数(相应地修改 PostService.ts)时,api 按预期工作。 …

dependency-injection angular-services angular

29
推荐指数
3
解决办法
3万
查看次数