Angular6 NgModel输入绑定到异步数据无效

Angular6 NgModel输入绑定到异步数据无效,angular,Angular,现在我正在开发一个阿波罗图形演示,遇到了一些麻烦 user-detail.component.html <div *ngIf="user"> <h2>{{user.username | uppercase}} Details</h2> <div><span>id: </span>{{user.id}}</div> <div> <label>username:

现在我正在开发一个阿波罗图形演示,遇到了一些麻烦

user-detail.component.html

<div *ngIf="user">

  <h2>{{user.username | uppercase}} Details</h2>
  <div><span>id: </span>{{user.id}}</div>
  <div>
    <label>username:
      <input [(ngModel)]="user.username" placeholder="username" />
    </label>
  </div>
  <button (click)="save()">save</button>

</div>
user.service.ts

getUser(id: string): Observable<User> {
    // TODO: send the message _after_ fetching the hero
    this.messageService.add(`UserService: fetched user id=${id}`);
    return this.apollo
      .watchQuery({
        query: userQuery,
        variables: {
          userID: id
        }
      })
      .valueChanges.pipe<User>(
        map(({data}: {data: {user: object}}) => data.user)
      );
  }
因此,我认为AsyncPipe数据存在一些问题。有人能帮我解决吗

我已经导入了
表单模块
并定义了
用户

export class User {
  id: string;
  username: string;
}

除非缺少一些代码,否则您实际上并没有使用异步管道。您如何检查用户对象是否已更新?@user184994 1。在
user detail.component.html
中,
{{user.username | uppercase}}详细信息
用户.username的文本不会更改。2.有
save()
来更新用户名,mongodb的日志告诉你在浏览器中看到错误了吗?我试图重现你的问题并修复,看看:@user184994不,真的很奇怪
getUser(): void {
  this.user = {
    id: '1',
    username: 'test'
  }
}
export class User {
  id: string;
  username: string;
}