Javascript 有没有办法确保Angular 2应用程序已加载?

Javascript 有没有办法确保Angular 2应用程序已加载?,javascript,angular,Javascript,Angular,因为我们有一个定制的SPL,所以我们不能在标记中使用加载器,或者不管根组件的名称是什么 因此,与这个常见的数字不同: <app-root> <p>loading...</p> </app-root> 加载 我们有这个数字: <app-root></app-root> . . . <p>loading...</p> . . . 加载 现在我需要一种方法来隐藏,或者最好在Angular

因为我们有一个定制的SPL,所以我们不能在
标记中使用加载器,或者不管根组件的名称是什么

因此,与这个常见的数字不同:

<app-root>
    <p>loading...</p>
</app-root>

加载

我们有这个数字:

<app-root></app-root>
.
.
.
<p>loading...</p>

.
.
.
加载

现在我需要一种方法来隐藏,或者最好在Angular完全加载后从DOM中删除加载。通过完全加载,我指的是Angular本身何时替换根组件的加载内容

我找不到办法。我该怎么办?

怎么样

<p ngIf="isLoading">loading...</p>
我认为您应该看看哪个钩子最能处理您的情况(可能是AfterViewInit,AfterContentInit…)

否则,如果您只需要设置手动加载(如“等待http调用完成”),则应设置指示加载状态的布尔属性,如下所示:

public class AppComponent implements OnInit {
  public isLoading = true;

  ngOnInit(http: HttpClient) {
    const vm = this;
    vm.http.get('something').subscribe(response => {
      vm.isLoading = false;
      // handle success
    }, error => {
      vm.isLoading = false
        // handle error
    });
  }
}

从第一个快速视图中,我们看不到您的
不在Angular组件中,所以您可能应该使用javascript来操作DOM(您通常可以从组件中执行)。我建议您将其移动到组件内部,除非您不能(仅将其作为
ElementRef
或正常
ngIf
指令处理)

给您的
标记一个id并执行以下操作:

export class appComponent implements OnInit{
     constructor(@Inject(DOCUMENT) private document: any) { }
      ngOnInit(){
        let p = this.document.getElementById("your<p>tagid");
        //remove it now i think this is valid
        // this.document.removeChild(p);
      }
导出类appComponent实现OnInit{
构造函数(@Inject(DOCUMENT)private DOCUMENT:any){}
恩戈尼尼特(){
设p=this.document.getElementById(“您的tagid”);
//现在删除它,我认为这是有效的
//本文件为removeChild(p);
}

不受任何组件类的控制。它仍然可以读取Angular并与Angular交互吗?是的,很抱歉。在这种情况下,您可以运行一些javascript在ngOnInit函数中删除它
export class appComponent implements OnInit{
     constructor(@Inject(DOCUMENT) private document: any) { }
      ngOnInit(){
        let p = this.document.getElementById("your<p>tagid");
        //remove it now i think this is valid
        // this.document.removeChild(p);
      }