angular - 可以从异步管道调用类方法吗?

标签 angular typescript rxjs observable

是否可以通过异步管道调用可观察类上的方法?

我已经尝试了以下方法,但无法使其工作。所以我想知道这是否可能或可以以更好的方式完成?

app.component.html

<p>Total Cost: {{ (orderState$ | async).TotalPrice() }}</p>

order.state.ts

export class OrderState {
    lineItems: OrderLineItem[];

    public TotalPrice(): number
    {
        // TODO: Calculate price of line items
        return 199;
    }
}

最佳答案

如有必要,创建另一个可观察对象。最好在 subscribe 中设置一个变量。

export class OrderState {
  lineItems: OrderLineItem[];
  get totalPrice(): number {
    // TODO: Calculate price of line items
    return 199;
  }
}

export class TheComponent {
  orderState$: Observable<OrderState>;
  // Here
  totalPrice$: Observable<string>;

  constructor() {
    // And then after you know what the orderState is.
    this.totalPrice$ = this.orderState$.map(state => state.totalPrice);
  }
}

<p>Total Cost: {{totalPrice$ | async}}</p>

关于angular - 可以从异步管道调用类方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45662086/

相关文章:

angular - 一次只选择一个复选框并在选中的特定复选框或未选中的两个复选框上执行特定任务

Json 操作 TypeScript Angular 2

javascript - Angular 7 : prevent escaping of HTML tags inside a string variable passed to child component through data binding

javascript - Angular 6 混合应用程序不加载 AngularJS 组件

对象数组上的 Angular RxJS 可观察过滤器

rxjs - rx (rxjs) fromEvent operator 是多播的吗?

javascript - Angular ul,cdk-virtual-scroll-viewport 列表,键盘选择

angular - 如何从 typescript 中的绝对类型访问这些功能?

c# - Visual Studio : "Learn this keyboard shortcut" recommendation?

angular - 如何让 Observable 返回转换后的项目数组(Rxjs)