我目前正在开发一个角度Web项目,该项目是加载Modal以更新报告的主要组件类 . 此Modal报告包含选项卡,其中一个选项卡是我负责的事务选项卡 . 我遇到的问题是,当我关闭更新报告模式并再次打开它时,事务选项卡仍会显示它在初始化的组件上加载的列表 . 我希望每次打开更新模式时,事务选项卡都会重新加载数据 . 这是我加载数据的地方:
enter ngOnInit() {
this.getTransactions();
this.getAllTransmodes();
}code here
这是获取数据的方法:
getTransactions(): void {
this.onDeselect();
this.response = this.reportTransactionsTabService.getTransactions(this.selectedReport.xmlGuid)
.subscribe(
items => {
this.transactions = items;
this.filteredTransactions = this.transactions;
this.totalTransactions = this.filteredTransactions.length
this.filterValue = "";
this.currentSortField = null;
},
error => this.errorMessage = <any>error);
}
2 回答
ngOnInit()是组件lifeCycle钩子,它特定于您的PageComponent并在您的页面加载时被调用 . 当您使用Tab来显示交易数据时,因此当您单击选项卡时,它将不会再次重新加载您的页面 . 因此在这种情况下不会调用ngOnInit()方法 .
您应该在单击选项卡时调用refresh / loadData方法,如下所示:
<div (click)="loadData()">TransactionTab</div>
还要在组件中定义方法
loadData() { //Call the method for loading your data this.getTransactions(); this.getAllTransmodes(); }
我找到了问题的解决方案 . 我需要做的就是继承OnChanges(Angular的一个生命周期钩子):
然后调用ngOnChanges方法中的加载数据的函数:
如果报告“事务”选项卡发生更改,它将基本上继续调用这些方法