2016-11-02 13 views
2

私はブール値フラグに基づいて画面上にdivを描画する必要があるシナリオを持っています。フラグの値はサービスから受信されます。角度2の値の変化を検出する

<div *ngIf="isEnabled()" class="col-sm-3 col-md-2 sidebar"> 
      <menu-bar></menu-bar> 
     </div> 

サービスがブール値を返すまでに、isEnabled関数はnullを返します。サービスのサブスクリプションが成功した後、このdivをレンダリングする方法はありますか?以下は

私が使用していますコンポーネントです:

export class MainAppComponent implements OnInit{ 

    static enabled : boolean = true; 
    license : string; 
    errorMessage : string; 
    fatalError : boolean; 
    mode = 'Observable'; 

    constructor(private licenseService : LicenceService){} 

    ngOnInit(): void { 
     this.licenseService.getLicenseInfo() 
      .subscribe(info => { 
           if(info) { 
            SharedService.isLicesePresent = true; 
           } else { 
            SharedService.isLicesePresent = false; 
           } 
          }, 
         error => { 
          this.fatalError = true; 
           this.errorMessage = <any>error; 
           swal({ 
            title: ' Error', 
            type: 'warning', 
            text: 'Network Error. Please contact customer support', 
           }) 

          }); 
    } 

    isEnabled() : boolean { 
     return SharedService.isLicesePresent; 
    } 
} 
+1

非同期パイプを使用するには、 'ISENABLED(で書かれたコードを投稿) '関数 –

+0

' SharedService'とは何ですか?おそらくそれの前に「これ」があるはずです。 –

+0

静的変数を持つユーティリティクラスの種類は、isLicesePresentです。 –

答えて

2

プロパティisEnabledに観測可能に割り当て、

this.isEnabled = someService.getStatus(); 
<div *ngIf="isEnabled | async" class="col-sm-3 col-md-2 sidebar"> 
     <menu-bar></menu-bar> 
    </div> 
+0

ありがとうございました。私のために働いた。 –

関連する問題