提交UserEditComponent后,Angular Observable UserListComponent自动更新

问题描述

如何刷新UserListComponent中已由UserEditComponent编辑过的用户,而不是重新加载所有用户?下面是相关代码

在user.service.ts中:

class UserService with update(user: User): void {...}

在user-edit.component.ts中:

class UserEditComponent with submit(): void {...}

在user-list.component.ts中:

class UserListComponent {
  users: Observable<User[]>;
  ngOnInit(): void {
    this.users = this.userService.users;
    this.userService.loadAll();
  }  
}

UserService具有:

private _users = new BehaviorSubject([]);
readonly users = this._users.asObservable();
loadAll(): void {...} // Loads all users and initializes _users.

UserListComponent的HTML:

                <mat-list-item *ngFor="let user of users | async">
                    <h3 mat-line>
                        <a mat-button [routerLink]="['/user-edit',user.id]">{{user.person.firstName}} {{user.person.middleName}} {{user.person.lastName}}</a>
                    </h3>
                </mat-list-item>

UserListComponent具有:

users: Observable;
  ngOnIinit(): void {
  users = this.userService.users;
  this.userService.loadAll();
}

UserEditComponent具有:

  user: Observable;
  form: FormGroup;
  submit(): void {
    if(this.form.valid) {
      this.userService.update(this.form.value);
      this.gotoList();
    }
  }

  gotoList(): void {
    this.router.navigate(['/user-list']);
  }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)