【问题标题】:can I change a parent's async piped properties?我可以更改父母的异步管道属性吗?
【发布时间】:2020-07-27 16:07:27
【问题描述】:

为您提供更多背景信息:

红色是父组件,蓝色是子组件。

父级只是在 ngOnit 中分配 Observable

this.user$ = this.userService.getUser(this.userId);

它不做任何其他事情,它在模板中以这种方式使用:

<ng-container *ngIf="user$ | async as usr; else loading">

孩子接收到两个可以作为@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 并订阅组件中的阅读服务之前,我在这里征求意见......

【问题讨论】:

    标签: angular binding


    【解决方案1】:

    为您的问题提供示例代码会有所帮助,但如果我正确理解您的问题,您应该能够使用双向数据绑定来解决此问题。

    没有看到代码,我只能假设您忘记将 EventEmitter 添加到子类中。 Here 是一个如何实现它的小例子。

    在 HelloComponent 中,为了方便起见,我将输入包装到一个对象中,而不是传入两个值,并注意 @Output dislayItemChange 如何与 @Input 具有相同的名称,但最后是 Change - 这是 Angular 的必要条件在父级中获取更改事件。阅读更多关于它的信息from the Angular docs

    【讨论】:

    • 你很酷。添加该事件(并触发它)就可以了。
    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 2017-02-14
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 2012-07-20
    相关资源
    最近更新 更多