Angular CLI HTTP Client获取数据但不刷新对象

时间:2019-05-20 12:47:30

标签: c# angular

我正在研究angular cli 7程序 我使用Httpclient从Web Api .net读取数据 我在服务器上的方法返回json值

getTicket(ticketId: number) {
return this.http.get<TicketModel>(
  SERVERURL/ticketId}
).pipe(map(res => res["result"] as TicketModel));

}

//创建用于绑定的对象模型

  selectedTicket: TicketModel = new TicketModel();

//调用获取票证的方法并在selectedTicket对象上设置

        this.accountService.getTicket(ticketId).subscribe(res => this.selectedTicket = res);

服务获取数据但不刷新this.selectedTicket 而且我最常点击UI或其他按钮来刷新对象

data from server

<ul class="list-inline">
   <li>
     <i class="fa fa-calendar-alt kt-font-brand "></i>
     <span style="color:#a7abc3;">تاریخ :
     </span>
     <span> {{selectedTicket.requestTime | agoTime}}
     </span>
   </li>

   <li>
      <i class="fa fa-briefcase kt-font-brand"></i>
      <span style="color: #a7abc3;">واحد : </span>
      <span>{{selectedTicket.departmentName}}</span>
   </li>

1 个答案:

答案 0 :(得分:1)

由于您尚未发布组件的代码,因此很难确定。但是,如果您使用的是changeDetectionStrategy OnPush,那么如果您没有将ChangeDetectorRef注入组件并在需要重新渲染模板时使用它的markForCheck方法,则会发生这种情况。

因此,首先将其添加到组件的构造函数参数中:

 private changeDetectorRef: ChangeDetectorRef

然后更改将this.selectedTicket设置为此的代码:

this.accountService.getTicket(ticketId).subscribe(res => {
  this.selectedTicket = res;
  this.changeDetectorRef.markForCheck()
);