Angular 2 应用程序中 NgOnInit 生命周期钩子中移动方法的问题
Posted
技术标签:
【中文标题】Angular 2 应用程序中 NgOnInit 生命周期钩子中移动方法的问题【英文标题】:Problems Moving Method within NgOnInit Life Cycle Hook in Angular 2 App 【发布时间】:2017-07-10 01:49:31 【问题描述】:我有一些数据正在填充到我的 Angular 2 应用程序中,并且一切都按预期工作,除了有时页面组件在信息准备好显示之前加载。在这些情况下,我可以点击“刷新”并填充数据。然而,这当然不是期望的行为。所以我的想法是将负责调用此信息的函数移动到 ngOnInit 生命周期钩子中。但是,当我尝试这样做时,我的 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 生命周期挂钩中?
【问题讨论】:
您不需要将 getPropertyStatus 方法放在另一个方法中 在这种情况下,如果您对数据加载的时间有疑问,您可以这样做。这就是 ngOnInit 的全部意义所在——它的存在是为了确保在组件启动时正确执行某些方法。 【参考方案1】:在 ngOnInit 内部调用,在外部定义:
ngOnInit()
this.getPropertyStatus("whatever name");
private getPropertyStatus(name: string): string
return this.doctor ? this.doctor.getPropertyStatus(name) : '';
【讨论】:
这行得通,谢谢。注意:我将其稍微更改为:ngOnInit() this.getPropertyStatus(name);以上是关于Angular 2 应用程序中 NgOnInit 生命周期钩子中移动方法的问题的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 应用程序中 NgOnInit 生命周期钩子中移动方法的问题
Angular 2 App Component ngOnInit 在使用 iframe 时调用了两次