如何在Angular 2+中处理双向数据绑定时处理null变量

Sam*_*ack 2 angular2-template angular angular5

我正在使用相同的组件进行编辑以及添加新条目。

if(this.action='edit'){
    this._PersonnelService.getUsersById(this.selectedperid)
      .subscribe((userdata: Iuser) => { this.personnel = userdata[0]; this.personnel.perid = this.selectedperid;console.log(userdata[0]); }, (error) => {
        this.statusMessage = 'Problem with service. Please try again.'
        console.error(error);
      });
   }
    else{     this.personnel=null}

  }
Run Code Online (Sandbox Code Playgroud)

这意味着如果将this.action变量add this.personnel设置为null。

现在,在HTML中,我具有以下元素:

<input type="text"   class="form-control" name="PerFullName"  
[(ngModel)]="personnel.perfullname" id="fullname ">
Run Code Online (Sandbox Code Playgroud)

我在控制台中收到大量错误。我的文本框不可见。
我该如何解决?

Isa*_*lla 5

使用elvis运算符?在你的HTML

<input type="text"   class="form-control" name="PerFullName"  
[ngModel]="personnel?.perfullname" (ngModelChange)="personnel?.perfullname personnel?.perfullname = $event : null" id="fullname ">
Run Code Online (Sandbox Code Playgroud)

和?? 在您的JavaScript中设置默认值(如果为null)

const j = null
y = j ?? 'Anonymous'
Run Code Online (Sandbox Code Playgroud)

之前在这里与猫王操作员双向绑定已经回答了这一问题。