angular - 检测 Angular 2 值的变化

标签 angular angular2-observables

我有一个场景,我需要根据 bool 标志在屏幕上渲染一个 div。标志的值是从服务接收的。

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

当服务返回 bool 值时,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;
    }
}

最佳答案

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

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

关于angular - 检测 Angular 2 值的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40377040/

相关文章:

javascript - 从具有 ngIf 指令的输入中获取值时出错

angular - Canada Post Rates Error in Ionic Project Response for preflight has invalid HTTP status code 500

javascript - 将 ES6 模板字面量与 Angular 表达式混合

angular2 风格指南 - 带有美元符号的属性?

javascript - Observable 成功后如何解析() Promise

css - 下拉列表在单个 HTML 页面中工作但在 Angular 组件中不工作

angular - 发生 angular2 Action 时重新加载 Html 对象标签

Angular 与 angular/cli - 无法找到 rxjs 运算符 mergeDelayError

json - 在 HTTP 请求到 JSON 之后,如何通过 angular-in-memory-web-api 变形返回到 Observable 的响应?

javascript - 无法从订阅的服务获取 .then 方法