Angular 7 TypeError:service.x不是函数

Angular 7 TypeError:service.x不是函数,angular,typescript,Angular,Typescript,我制作了一个路由服务,并希望将其注入我的nav组件中。但是当我调用一个方法时,它抛出类型错误:routingService.getRequestedPage不是一个函数。昨天我在另一项服务中遇到了一个非常类似的问题,不幸的是我忘记了我是如何解决这个问题的。我用终端生成了服务 src/app/nav/nav.component.tsconstructor: 构造函数(私有模板服务:模板服务,私有路由服务:路由服务){ this.getTemplates(); if(this.routingServ

我制作了一个路由服务,并希望将其注入我的nav组件中。但是当我调用一个方法时,它抛出
类型错误:routingService.getRequestedPage不是一个函数。昨天我在另一项服务中遇到了一个非常类似的问题,不幸的是我忘记了我是如何解决这个问题的。我用终端生成了服务

src/app/nav/nav.component.ts
constructor:

构造函数(私有模板服务:模板服务,私有路由服务:路由服务){
this.getTemplates();
if(this.routingService.getRequestedPage()='home'){
这是showHome();
}
}
src/app/nav/nav.component.ts
import:

从“../shared/routing.service”导入{RoutingService};
src/app/shared/routing.service.ts

从'@angular/core'导入{Injectable};
@注射的({
providedIn:'根'
})
导出类路由服务{
private requestedPage:字符串;
构造函数(){
this.requestedPage='home';
}
请求页面(页面:字符串){
this.requestedPage=第页;
}
getRequestedPage(){
返回此.requestedPage;
}
}

只需将@Injectable()放在app.module.ts文件中,然后在providers下添加服务,而不是将providedIn部分放进去。那么当你写作的时候

构造函数(私有whateverService:whateverService){

}
您对
RoutingService
的导入是什么样子的?您是否尝试过将方法定义替换为“getRequestedPage():string”@Viqas edited post并添加导入statement@MihirDave这成功了!你能解释一下为什么吗?这个有效,你能解释一下为什么这个有效,而另一个无效吗?我不太确定,因为我总是使用我描述的方法,但是如果我不得不猜测的话,我会说“providedIn:'root'”将允许您将其添加到任何模块提供程序数组中,并实现与将其放入app.module.ts提供程序中相同的效果。但不确定,因此您必须尝试确认。除App.module外,您很可能还有其他模块。您正试图在其他模块中使用该服务。因此providedIn:'root'将尝试使该服务在主模块中可用,而不是在您导入该服务的实际组件模块中可用。