我在Angular中比较新,我的问题是: 我有一个主要组件,它有一些子组件,如表单组件,选项卡组件,状态组件。
在主组件init上,我做了一个数据请求(假设我订阅了Object1)。此日期用于表单和状态组件。
但是我有一个标签组件,我在它上面有另一个请求(假设是Object2)。在这个组件上,我有一个运行http post(更新Object2)的按钮,在后端,它从Object1更改一个值(状态组件中的状态值)。
如何重新加载所有主要组件,以便在标签组件中的http post上成功后看到Object1已更改?
答案 0 :(得分:1)
在主组件init上我做了一个数据请求(让我说我订阅了 它到Object1)。此日期用于表单和状态组件。
使用Outputs
再次调用此方法。
基本上你只需要再次提出数据请求。
E.g Component 2 Post按钮
@Output() refresh = new EventEmitter();
post(){
//make http.post request
.subscribe(
res => console.log(res),
err => console.error(err),
() => this.refresh.emit();
)
}
需要刷新的组件1 - 模板
<component-2 (refresh)="getData()"></component-2>
其中getData()=第一次用于请求数据的方法。