根据Observable <boolean>的结果禁用按钮

时间:2019-01-04 08:19:26

标签: angular typescript

我有一个按钮,仅在用户具有编辑权限时才显示。要对此进行检查,我需要调用另一个服务,结果存储在Observable<Boolean>中。

我正试图这样做,但它不起作用:

 <button md-mini-fab [disabled]="(blockButtonAsync() | async)" ...

方法是:

blockButtonAsync(): Observable<Boolean> {
    return this.http.get(this.restGetUserRoles)
                    .map(res => {
                                    return res.json() || [];
                                })
                    .map(roles => roles.indexOf('ROLE_EDITOR') === -1);
}

1 个答案:

答案 0 :(得分:0)

您需要创建可观察变量并在模板中使用

// Ts code

$blockButton:Observable<boolean>;
ngOnInit() {
   this.$blockButton = this.http.get(this.restGetUserRoles)
     .pipe(
        map(roles => roles.indexOf('ROLE_EDITOR') === -1)
     );
}


//Html code

<button md-mini-fab [disabled]="$blockButton  | async)">

尝试一下。可能有效