实时更新和视图渲染

时间:2017-04-26 19:30:14

标签: angular

我有一个与我的服务器通信的数据服务。

String

我以这种方式在我的组件中使用它。

export class DataService {
  constructor(private http: Http) { }

  getUsers():Observable<Users>{


    return this.http.get(myurl).map(this.extractData);

 }
extractData(res:Response){

    return res.json();
  }
}

变量ngOnInit() { this.getUsers(); } getUsers():void{ this.dataService.getUsers().subscribe(response=>{ this.users = response; } ); } 是表的输入。 当我在看到空表之前启动组件时,之后,当加载数据时,我看到包含所有用户的表。如何在数据准备就绪时查看组件?

当我在服务器上插入新用户时,我在桌面上看不到它,我需要刷新页面。 在插入之后,如何在桌面上显示(实时)新用户而不刷新页面?

谢谢

2 个答案:

答案 0 :(得分:0)

  

如何在数据准备就绪时查看组件?

您需要将此数据检索逻辑移动到解析器中,组件应从中获取数据。

  

如何在插入后显示(实时)表格中的新数据而不刷新页面?

您应该在组件内插入数据检索逻辑,并更新对用户&#39;的引用。变量与新数据。

答案 1 :(得分:0)

您始终可以将this.users初始化为null。然后在你的标记中你可以做这样的事情:

<div *ngIf="users">
   <!-- Your content here -->
</div>

当用户变为非空时,Angular将开始呈现标有div的{​​{1}}。这是有效的,因为在JS *ngIf中是假的。如果这看起来很傻,你可以在订阅中设置一个布尔标志,你在null块(*ngIf)中引用。