【发布时间】:2020-11-10 10:35:14
【问题描述】:
我使用 valueChanges 来查看特定控件的更改。
当我将控制值设为@Input 并将其初始化为ngOnChanges 时,问题就开始了。
如果我使用async 管道观看它,
它不起作用。
我想,这是因为ngOnChanges 出现在ngOnInit 之前,
然后在初始启动后对 observable 进行“订阅”。
问题是如何解决这个问题。
valueChanges 可以充当 BehaviorSubject 吗?
或者有人有其他想法吗?
这是我的代码:
component.ts:
@Input() customerId;
customerState$: observable<number>;
myForm:FormGroup;
constructor(){
this.customerState$= this.myForm.controls.customerId.valueChanges;
}
ngOnChanges(){
if (changes.customerId) {
this.myForm.controls.customerId.setValue(changes.customerId.currentValue);
}
}
component.html:
{{customerState$|async}}
第一次,它什么也没显示。 只有在customeId 再次更改时才会显示该值。
我会注意到我的代码看起来并不像这样,而且我的要求有点复杂, 只是为了说明问题,我创建了一些概念上相似的东西。
所以我很想回答我提出的问题,而不是一个可以解决这里问题的特定技巧。
【问题讨论】:
标签: angular rxjs angular-reactive-forms