首页 > 解决方案 > 为什么以反应形式订阅不起作用?

问题描述

从是:

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);
});

为什么我没有在警报消息中获得选定的值?

标签: angular

解决方案


查看我为您制作的这个 stackblitz:https ://stackblitz.com/edit/angular-e5nq6d

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

奖金

另请注意,通过使用该选项onlySelf: true,传递给json管道的 filterForm.value 不会改变。一开始似乎违反直觉,但将onlySelf选项设置为 false(或未声明)的值会按预期更新模板表示。


推荐阅读