2016-12-28 3 views
0

最初のテキストがloading...であるdivを作成しようとしていますが、後でその中にロードされている新しい要素でオーバーラップすることができます。divの中にテキストを表示しますが、背景イメージとして扱います

<div class="results" style="position:relative;" *ngIf="showResults"> 
    <!-- show 'loading...' before the results load, which would then overlap this text --> 
    <div stlye="position: absolute; z-index: -1;">Loading ...</div> 
    <!-- angular2 loop to asynchronously load results --> 
    <div *ngFor="let loc of searchLocations | async" (click)="selectLocation(loc)" class="search-result"> 
     {{ loc.name }}, {{ loc.adminName1 }}, {{ loc.countryCode }} 
    </div> 
</div> 

しかし、私はこれを実行すると、ここで私は

enter image description here

のようなものがそう私の「読み込み中...」のテキストは、それ自身のboundryがあり得るものです:ここで私が扱ってんですよ私はそれらの先行要素がそのテキストの上に重なり合うようにしたい。このようなことをどうすれば達成できますか?

+2

あなたはスタイルを「stlye」と綴っているかもしれません。 – andi

+1

あなたはloading-divにngIfを追加し、データを取得したらそれを隠すことができます。 – kkreft

+0

@andi lolありがとう、ローディングテキストをカバーしていませんが、重複するだけです。検索結果要素を追加して完全に不透明にするには何が必要ですか? –

答えて

0

ローダーのブール値を作成できます。

export class YourClass(){ 
    isLoading:boolean = true; 
    constructor(){ 
     // Not sure how you are implementing your GET Request 
     // So no point in trying to replicate that, just where ever 
     // you assign searchLocations to an object 
     // fetch data logic ends with => { 
      isLoading = false; 
     } 
    } 
} 

は、その後、あなたのhtmlであなただけのあなたも、どこでも使用するローダーコンポーネントを作るにもでき、またはあなたがいる限り、変数showResultsにフックでき* ngIf

<div style="position: absolute; z-index: -1;" 
     *ngIf="isLoading">Loading ...</div> 

を追加する必要がありますあなたが* ngIf = "!showResults"という属性を持つshowResults divの外側にロードdivを配置すると、ちょっとしたスタイルのtweekを意味するかもしれません。

関連する問題