检测 angular 2 中值的变化

Detecting change in value in angular 2

我有一个场景需要根据布尔标志在屏幕上呈现 div。标志的值是从服务接收的。

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

当服务returns一个布尔值时,isEnabled函数returns为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;
    }
}

将可观察对象分配给 属性 isEnabled 并使用异步管道

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