刷新Angular中不同Component的内容

时间:2017-12-22 18:52:23

标签: angular typescript primeng

我问自己如何使用NGFaces重新加载Angular中不同Component的内容。背景如下:在成功发布请求后,我想重新加载视图以显示从get请求中检索到的最新数据。 插入页面/组件位于不同的类中。

public create(name, description, archived, selectedParents): void {
http.post.subscribe(() => {
  this.messageService.success('Worked');
//here the other component should call the get method and refresh the page afterwards
}, () => {
  this.messageService.error('Error');
});;
}

另一个组件有以下方法:

 http.get.subscribe(data => {
     this.data = data;
    });

我正在使用PrimeNG,所以我不能使用$ scope变量。

http在此代码段中简化了方法。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以像这样使用Angular的Output装饰器:

import { EventEmitter, Output } from '@angular/core';

@Output() updateView = new EventEmitter();

public create(name, description, archived, selectedParents): void {
http.post.subscribe(() => {
  this.messageService.success('Worked');
  //here the other component should call the get method and refresh the page afterwards
  this.updateView.emit();
}, () => {
  this.messageService.error('Error');
});;
}

最后在你的"其他组件"模板,你会有这个:

<app-insert-page (updateView)="otherComponentGetMethod()"></app-insert-page>

更多信息here