我可以更改 parent 的异步管道属性吗?
can I change a parent's async piped properties?
为您提供更多背景信息:
红色是 parent,蓝色是 child 分量。
parent只是在ngOnit
中赋值Observable
this.user$ = this.userService.getUser(this.userId);
它没有做任何其他事情,它以这种方式在模板中使用:
<ng-container *ngIf="user$ | async as usr; else loading">
child接收到两个可以改变为@Input属性的值:
<ew-edit-user
*ngIf="edit===true"
[(xBox)]="usr.xBox"
[discord]="usr.discord">
</ew-edit-user>
在Submit-Handler中调用API保存修改。
this.userService.changeProfile(this.frm.xBox.value, this.frm.discord.value).subscribe(() => { });
保存后,我想刷新parent。
按上图two-way-bindings试过,没有效果。所以在我 re-write Parent 和订阅组件中的 reading-service 之前,我在这里征求意见...
提供一个示例代码解决你的问题会有所帮助,但如果我正确理解你的问题,你应该能够通过双向数据绑定解决这个问题。
在没有看到代码的情况下,我只能假设您忘记将 EventEmitter 添加到子项 class。 Here 是一个如何实施的小例子。
在 HelloComponent 中,为了方便起见,我将输入包装到一个对象中,而不是传入两个值,并注意 @Output dislayItemChange 如何与 @Input 同名但最后带有 Change - 这是必要的Angular 以获取父项中的更改事件。阅读更多相关信息 from the Angular docs
为您提供更多背景信息:
红色是 parent,蓝色是 child 分量。
parent只是在ngOnit
中赋值Observablethis.user$ = this.userService.getUser(this.userId);
它没有做任何其他事情,它以这种方式在模板中使用:
<ng-container *ngIf="user$ | async as usr; else loading">
child接收到两个可以改变为@Input属性的值:
<ew-edit-user
*ngIf="edit===true"
[(xBox)]="usr.xBox"
[discord]="usr.discord">
</ew-edit-user>
在Submit-Handler中调用API保存修改。
this.userService.changeProfile(this.frm.xBox.value, this.frm.discord.value).subscribe(() => { });
保存后,我想刷新parent。
按上图two-way-bindings试过,没有效果。所以在我 re-write Parent 和订阅组件中的 reading-service 之前,我在这里征求意见...
提供一个示例代码解决你的问题会有所帮助,但如果我正确理解你的问题,你应该能够通过双向数据绑定解决这个问题。
在没有看到代码的情况下,我只能假设您忘记将 EventEmitter 添加到子项 class。 Here 是一个如何实施的小例子。
在 HelloComponent 中,为了方便起见,我将输入包装到一个对象中,而不是传入两个值,并注意 @Output dislayItemChange 如何与 @Input 同名但最后带有 Change - 这是必要的Angular 以获取父项中的更改事件。阅读更多相关信息 from the Angular docs