javascript - Angular 2 应用程序中 NgOnInit 生命周期 Hook 内移动方法的问题

标签 javascript angular typescript

我有一些数据正在填充到我的 Angular 2 应用程序中,一切都按预期工作,除了有时会在信息准备显示之前加载页面组件。在这些情况下,我可以点击“刷新”并填充数据。然而,这当然不是期望的行为。所以我的想法是将负责调用此信息的函数移至 ngOnInit 生命周期 Hook 中。但是,当我尝试执行此操作时,我的 IDE 显示错误,但我不确定原因。

这是我当前组件的相关信息:

export class DoctorGeneralComponent extends EventHandler implements OnInit {

    @Input('doctor')
    public doctor: DoctorModel;

    constructor(private dialog: MdDialog) {
        super();
    }

    ngOnInit() {

     }

    public getPropertyStatus(name: string): string {
        return this.doctor ? this.doctor.getPropertyStatus(name) : '';
    }
}

如果我将此“gePropertyStatus”方法移动到我的 ngOnInit 中,如下所示:

ngOnInit() {
   public getPropertyStatus(name: string): string {
    return this.doctor ? this.doctor.getPropertyStatus(name) : '';
}

...我收到 ts“需要声明或声明”错误。

知道这里发生了什么,以及如何解决它以将此方法包含在我的 ngOnInit 生命周期 Hook 中吗?

最佳答案

在 ngOnInit 内部调用它,在其外部定义它:

ngOnInit() {
   this.getPropertyStatus("whatever name");
}

private getPropertyStatus(name: string): string {
  return this.doctor ? this.doctor.getPropertyStatus(name) : '';
}

关于javascript - Angular 2 应用程序中 NgOnInit 生命周期 Hook 内移动方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42350385/

相关文章:

javascript - ajax 响应 Jquery 后未触发事件

javascript - WebStorm 找不到名为 TypeScript 的 ES6 导入

javascript - iframe位置加载观察

javascript - Bootstrap 中输入的两行对齐

html - 在 html div 标签内显示 Angular 4 项目

Angular 2 键盘事件

typescript - 无法扩展 sinon 的类型

Angular、Google map 、如何从 map 获取标记列表并在其上使用 onClick 事件?

javascript - 在树莓派上使用 node.js 进行和弦音频播放

javascript - 如何使用 Angular2 传递有关如何在管道中过滤的元数据?