代码之家  ›  专栏  ›  技术社区  ›  POV

为什么工作不能以反应式的形式订阅?

  •  -1
  • POV  · 技术社区  · 5 年前

    来自:

    this.filterForm = this.fb.group({
          classNumber: [null, []],
          classSuffix: [null, []],
          teacher: [null, []],
          subject: [null, []]
        });
    

    我尝试为构造函数类中的字段设置值:

    this.filterForm.controls["classNumber"].setValue('r', { onlySelf: true });
    

    听众看起来:

     this.filterForm.controls["classNumber"].valueChanges.subscribe(
          selectedValue => {
          alert(selectedValue);
    });
    

    为什么我不在警报消息中获得所选值?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Keenan Diggs    5 年前

    看看我为你做的这堆垃圾: https://stackblitz.com/edit/angular-e5nq6d

    如果您正在设置侦听器 之后 更改该值后,您将看不到警报消息。这是因为侦听器还不存在。

    奖金

    还要注意,通过使用选项 onlySelf: true 传递给 json 管道不会改变。一开始似乎有点违反直觉,但使用 onlySelf 选项为false(或未声明)将按预期更新模板表示形式。