【问题标题】:Manipulating value by using subscribe method in TypeScript在 TypeScript 中使用 subscribe 方法操作值
【发布时间】:2018-09-05 03:49:21
【问题描述】:

我使用角度 6

我通过 2 [formControl] "toppings":array 和 "toppings2":array 收听 2 个表单。

当我听其中一个或另一个时,我的代码运行良好,但当我使用操作 zip 时,日志随机来自一种或另一种形式。

我不知道如何操纵 val 以获得预期的结果

我的代码:

ngOnInit() {

zip(this.toppings.valueChanges, this.toppings2.valueChanges).subscribe(val => 
            console.log(val[0] +val[1]);


}

【问题讨论】:

  • 您能否提供一个stackblitz 示例。
  • 我明天可以试试

标签: javascript angular rxjs zip subscribe


【解决方案1】:

您可以使用combineLatest 代替zip

当任何 observable 发出一个值时,发出每个 observable 的最新值。

combineLatest(this.form.get('toppings').valueChanges, this.form.get('toppings2').valueChanges)
    .subscribe(val => console.log(val))  // should print both form control values

检查这个stackblitz

【讨论】:

  • 我必须初始化表单?
  • 实际上不需要。它们只是两个表单控件。这只是一个展示 combineLatest 用法的示例。为了方便,我使用了表单。
  • 控制台不知道属性“表单”。我必须引进他?
  • and core.js:1598 ERROR TypeError: Cannot read property 'get' of undefined
  • 请浏览演示中的完整示例。如果你想通过表单获取值,那么你必须初始化表单。如果你想使用表单控件来获取它,那么你必须创建这些表单控件的实例来观察 valueChanges。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
相关资源
最近更新 更多