Angular HttpClient返回“;无法读取属性';获取';“未定义”的定义;[附件七]
我正在尝试在Angular 7中创建一个简单的API服务,可以包含在任何需要它的组件中。然而,每当我从组件调用它时,我都会得到一个错误。例如,如果从我的组件中调用Angular HttpClient返回“;无法读取属性';获取';“未定义”的定义;[附件七],angular,class,ecmascript-6,angular-httpclient,Angular,Class,Ecmascript 6,Angular Httpclient,我正在尝试在Angular 7中创建一个简单的API服务,可以包含在任何需要它的组件中。然而,每当我从组件调用它时,我都会得到一个错误。例如,如果从我的组件中调用ApiService.read('/public/flavorsofcandy/')我得到: 错误类型错误:无法读取未定义的属性“get” 现在,我不确定这是为什么,但我觉得这是一件简单而愚蠢的事情。然而,我找不到发生这种情况的原因。我觉得这是因为我没有完全理解与类相关的概念,而不是Angular 7本身 api.service.ts
ApiService.read('/public/flavorsofcandy/')
我得到:
错误类型错误:无法读取未定义的属性“get”
现在,我不确定这是为什么,但我觉得这是一件简单而愚蠢的事情。然而,我找不到发生这种情况的原因。我觉得这是因为我没有完全理解与类相关的概念,而不是Angular 7本身
api.service.ts
mycomponent.ts
未定义您的
HttpClient
。在代码行私有http:HttpClient
声明它,但从不给它赋值,因此它保持为未定义
HttpClient
类是可注入的,因此我们可以将其注入到ApiService
的conscructor中,如下所示:
constructor(private http: HttpClient) {}
现在,我们可以通过调用
this.http.get(someUrl.subscribe)(ex=>{}),在这个服务的任何地方访问它代码>未定义您的HttpClient
。在代码行私有http:HttpClient
声明它,但从不给它赋值,因此它保持为未定义
HttpClient
类是可注入的,因此我们可以将其注入到ApiService
的conscructor中,如下所示:
constructor(private http: HttpClient) {}
现在,我们可以通过调用this.http.get(someUrl.subscribe)(ex=>{}),在这个服务的任何地方访问它代码>您没有注入HttpClient
。您需要使用构造函数来注入它。看见不要忘记在AppModule
中导入HttpClientModule
,您没有注入HttpClient
。您需要使用构造函数来注入它。看见别忘了在你的AppModule
中导入HttpClientModule
,这给了我一个错误error TypeError:\u scripts\u api\u service\u WEBPACK\u IMPORTED\u MODULE\u 3\uuuu.ApiService.read不是一个函数
,但我会继续玩下去看看原因。@invotmycomponent.ts
也有同样的问题。您需要注入ApiService
。导入行应该是“../../scripts/api.service”中的import{ApiService}代码>然后以相同的方式将其注入构造函数。exp)constructor(私有api:ApiService){}
然后在该类中的任何位置调用它,如this.api.read(someUrl)
这给了我一个错误错误类型错误:_scripts\u api\u service\u WEBPACK\u IMPORTED\u MODULE\u 3\u.ApiService.read不是一个函数
,但我会继续玩下去看看原因。@invot mycomponent.ts也有同样的问题。您需要注入ApiService
。导入行应该是“../../scripts/api.service”中的import{ApiService}代码>然后以相同的方式将其注入构造函数。exp)constructor(私有api:ApiService){}
然后在该类中的任何位置调用它,如this.api.read(someUrl)
constructor(private http: HttpClient) {}