2016-10-04 16 views
0

このようなことをしたいと思います。コンポーネントがロードされたら、1秒後にhtmlがロードされます。 これはコードコンポーネント(ts)です。遅延コンポーネントのhtmlアングル2

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'pagination', 
    templateUrl: './app/html/pagination.component.html', 
    styleUrls: ['app/css/pagination.component.css'] 
}) 

export class Pagination {} 

templateUrl: './app/html/pagination.component.html', 1秒後に読み込む方法は? 一般的に私のアイデアは、サーバー上での実行後のリクエスト中に、ユーザーに対して遅延(1秒)を伴う負荷を表示することにあります。 誰にもアイデアはありますか?

<div *ngIf="loaded"> 
... 
... 
... 
</div> 

コンポーネントのクラスで:あなたが欲しいものを基本的に

答えて

2

ngIfディレクティブを使用してください。部品コードで

<div *ngIf="showContent">Will appear after ~1 sec</div> 

だから、次のようになります

export class Pagination { 
    public showContent: boolean = false; 
    public ngOnInit() { 
     setTimeout(()=>this.showContent=true, 1000); 
    } 

} 
+0

お時間をいただきありがとうございます – Lestoroer

1

が、これは単にあなたの要求を購読すると、テンプレート内のコンポーネントを表示するようにフラグを設定し達成するために、要求が完了した後にのみコンポーネントを表示することです:

@Component.... 
export class FooComponent{ 
    let loaded = false; 
} 

そして、あなたのご要望に応じて:上

this.http.post(.....).subscribe(() => { 
    this.loaded = true; 
}); 

以上の情報angular.io

+0

おかげで非常に多くの – Lestoroer

+0

これが正解です。 SetTimeoutは、ユーザーのネットワーク接続の速度が常に同じではないため、信頼性がありません。 – rmlarsen

関連する問題