为什么不能以被动形式订阅?

时间:2019-01-24 02:57:03

标签: angular

发件人是:

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 个答案:

答案 0 :(得分:0)

查看我为您制作的这次堆叠闪电战:https://stackblitz.com/edit/angular-e5nq6d

如果要在更改值之后设置监听器 ,则不会看到警报消息。这是因为侦听器尚不存在。

奖金

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