在显示所有函数/数据之前,不要显示.html组件。 Angular 2

时间:2017-01-15 08:48:34

标签: angular typescript firebase

我在ngOnInit中有两个方法,如下所示:

   ngOnInit() {
    this.getBugId(); // Get Id from URL 
    this.getBugInformation(); // Get the bug information from firebase, the bug that matches the ID passed in
}

getBugId():基本上从URL获取Id并将其分配给本地变量。

getBugInformation():调用服务,连接到firebase检索与我传入的bugId匹配的单个记录,并填充一个名为Bug的类,这是有效的。

//在返回promise的服务上调用方法。

 getBugInformation() {
    this.bugService
        .getBug3(this.bugId)
        .then(bug => {
            this.bugDetail = bug;
            this.configureForm();
        });
}

我遇到的问题是this.configureForm();这基本上填充了FormControls中的字段,然后显示在.html页面上,问题是我的.html页面出现在函数完成之前导致     formGroup需要一个FormGroup实例。我的问题是,请将一个输入显示在控制台中作为错误。如何阻止.html页面显示,

this.getBugInformation();已完成 this.configureForm();已完成。

提前致谢

1 个答案:

答案 0 :(得分:1)

您正在调用两个函数。要解决这个问题,你应该创建一个布尔

display: boolean = false;
当您的表单已准备好this.configureForm();

时,

现在处于功能this.display = true;中 你的html部分中的

将你想要稍后显示的所有表单放到带有* ngIf结构指令的div块中

<div *ngIf="display">
...... your code here 
</div>
谢谢。