如何解决ngOnInit中的角度禁用/启用代码块
我正在尝试确定最佳的设计模式,以在实现“键入时保存”功能的同时最大程度地减少REST调用的次数。我会尝试使其尽可能通用。
在ngOnInit()中,我将其包括在内(将其尽可能保持通用,但不要担心函数中存在一个独特的UntilChanged()以防止其向REST端点发送垃圾邮件):
ngOnInit(): void {
if (this.formIsEditable) {
this.inputField.valueChanges.subscribe(() => //do REST);
}
}
但是,在组件初始化之后,formIsEditable被设置为true,因此它将永远不会到达此代码块内。当此布尔值更改时,Angular中是否有办法强制更新?理想情况下,当布尔值设置为false时,它将防止将PUT发送到后端。如果布尔值为true,则可以将PUT发送到后端。
解决方法
为什么不简单:
this.inputField.valueChanges.subscribe(() =>
if(this.formIsEditable){ //do REST }
);}
别忘了取消订阅此可观察的内容。
,您可以利用RXJS filter
运算符来过滤this.formIsEditable
设置为false时发出的值,如下所示:
this.inputField.valueChanges
.pipe(
filter(_ => this.formIsEditable)
)
.subscribe(() => //do REST);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。