angular-material2 - 角度 Material 2 : How to refresh md-table after editing a record?

标签 angular-material2

所以我有一个用户列表组件和一个用户详细信息组件。

用户列表组件有一个列出所有注册用户的 md 表。用户可以点击按钮查看相应实体的详细信息。

编辑名称属性并保存(例如)后,用户详细信息重定向到用户列表组件。但是 md-table 显示的是旧信息。

在这种情况下,如何在另一个组件中编辑实体后触发 md-table 刷新?

这是我的用户列表组件:

export class UserListComponent implements OnInit {
tableDisplayedColumns: string[] = ['userName', 'email', 'options'];
userDataSource: UserDataSource;

constructor(private _userService: UserService, private _router: Router) { }

ngOnInit(): void {
    this.userDataSource = new UserDataSource(this._userService);
}}



class UserDataSource extends DataSource<UserVModel> {
constructor(private _userService: UserService) { 
    super();
}

connect(): Observable<UserVModel[]> {
    return this._userService.getAllUsers();
}

disconnect(): void { }}

最佳答案

connect() 提供的流发出新值时,表格将重新呈现。

getAllUsers 需要在更改时发出一组新数据。否则,从 _userService 中监听一个单独的流(例如 dataChanged)并使用它再次调用 getAllUsers

connect(): Observable<UserVModel[]> {
  return this._userService.dataChanged
      .switchMap(() => this._userService.getAllUsers()
}

关于angular-material2 - 角度 Material 2 : How to refresh md-table after editing a record?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45288271/

相关文章:

css - Angular 2 teradata共价: how to reduse material 2 toolbar height

Angular 在点击回调函数中调用另一个函数(this)

angular - 如何定义 Angular Material 2 中的高度?

angular - 带有 mat-autocomplete 的 cdk-virtual-scroll 不规则地工作

html - Material 2 按钮 Css 样式 Angular 5

css - 使 mat-card-image 中的所有图像大小相同但正确缩放

Angular Material2 日期选择器 - 动态格式化

css - Angular2 Material md-select 不与 md-input 内联

javascript - 错误 : Datepicker: value not recognized as a date object by DateAdapter

angular - 如何在 Angular Material 2 的 md-table 中创建子表?