首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据可观测值设置角垫按钮属性?

如何根据可观测值设置角垫按钮属性?
EN

Stack Overflow用户
提问于 2019-11-20 19:11:48
回答 2查看 429关注 0票数 0

我有以下代码:

代码语言:javascript
复制
<button mat-button [disabled]="offline() | async"
    [textContent]="scanning() ? 'Stop' : 'Start'"
    (click)="scanning() ? onScanStop() : onScanStart()">
</button>

offline()scanning()都返回Observable<boolean>

我不知道如何使用async管道在scanning()的情况下,似乎offline()是可以的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-20 19:27:13

新答案:

因此,经过一些试验,我认为您无法阻止在后台.ts组件文件中添加一些代码。我们将在模板中使用一个名为_scanning的变量:

代码语言:javascript
复制
<button mat-button [disabled]="offline() | async"
    [textContent]="_scanning ? 'Stop' : 'Start'"
    (click)="_scanning ? onScanStop() : onScanStart()">
</button>

在您的.ts文件中:

代码语言:javascript
复制
  _scanning: boolean = null;
  ngOnInit(): void {
    this.scanning().subscribe(res => this._scanning = res);
  }

旧答案:

试试这个:

代码语言:javascript
复制
<ng-container *ngIf="scanning | async as _scanning">
    <button mat-button [disabled]="offline() | async "
        [textContent]="_scanning ? 'Stop' : 'Start'"
        (click)="_scanning ? onScanStop() : onScanStart()">
    </button>
</ng-container>

准备好时将可观察到的scanning结果存储在_scanning变量中,并像其他vars一样使用_scanning变量

票数 2
EN

Stack Overflow用户

发布于 2019-11-20 19:26:37

如果您将逻辑直接移出组件中的(单击)事件之外,它将工作。

相反,调用另一个函数;让我们将其命名为startScan()。StartScan()将检查then ()是否返回true或false,然后触发onScanStop()或onScanStart()。

这肯定能行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58961719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档