【发布时间】:2019-07-17 08:40:22
【问题描述】:
我创建了一个路由服务并想将它注入到我的导航组件中。但是当我在它上面调用一个方法时,它会抛出TypeError: routingService.getRequestedPage is not a function。昨天我在另一个服务上遇到了一个非常相似的问题,不幸的是我忘记了我是如何解决这个问题的。我用终端生成了它的服务。
src/app/nav/nav.component.ts构造函数:
constructor(private templateService: TemplateService, private routingService: RoutingService) {
this.getTemplates();
if (this.routingService.getRequestedPage() === 'home') {
this.showHome();
}
}
src/app/nav/nav.component.ts 导入:
import {RoutingService} from '../shared/routing.service';
src/app/shared/routing.service.ts:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class RoutingService {
private requestedPage: string;
constructor() {
this.requestedPage = 'home';
}
requestPage(page: string) {
this.requestedPage = page;
}
getRequestedPage() {
return this.requestedPage;
}
}
【问题讨论】:
-
RoutingService的导入是什么样的? -
您是否尝试过将方法定义替换为“getRequestedPage(): string”
-
@Viqas 编辑帖子并添加导入声明
-
@MihirDave 这行得通!你能解释一下为什么吗?
-
并不是说这直接适用于上面描述的情况,但是由于服务之间的循环依赖,你会得到这个错误。
标签: angular typescript