【问题标题】:Reload an angular modal with new data everytime the modal opens每次模态打开时都用新数据重新加载角度模态
【发布时间】:2018-06-21 17:04:55
【问题描述】:

我目前正在开发一个 Angular Web 项目,该项目是加载 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);
}

【问题讨论】:

  • 显示你的模态打开逻辑。此外,您可以在每次触发 (click) 处理程序以打开模式时调用 ngOnInit 中的逻辑(假设它是这样打开的)。
  • 我们需要你的全部代码。但是没有它,我只能建议您在模态关闭时执行this.transactions = undefined(我想它绑定到ngOnDestroy

标签: angular typescript


【解决方案1】:

我找到了问题的解决方案。我需要做的就是继承 OnChanges(Angular 的生命周期钩子之一):

export class ReportTransactionsTabComponent implements OnInit, **OnChanges**

然后调用ngOnChanges方法中加载数据的函数:

ngOnChanges() {
    this.getTransactions();
    this.getAllTransmodes();
}

如果报表事务选项卡发生变化,它基本上会继续调用这些方法

【讨论】:

    【解决方案2】:

    ngOnInit() 是组件生命周期挂钩,它特定于您的 PageComponent,并在您的页面加载时被调用。由于您使用选项卡来显示交易数据,因此当您单击选项卡时,它不会再次重新加载您的页面。所以在这种情况下不会调用 ngOnInit() 方法。

    您应该在单击选项卡时调用 refresh/loadData 方法,如下所示: &lt;div (click)="loadData()"&gt;TransactionTab&lt;/div&gt;

    同样在你的组件中定义方法

    loadData() { //Call the method for loading your data this.getTransactions(); this.getAllTransmodes(); }

    【讨论】:

    • 感谢您强调生命周期钩子,我只需要从 Transactions Compoent 类中实现 OnChanges:导出类 ReportTransactionsTabComponent 实现 OnInit、OnChanges{},然后调用 ngOnchanges 方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    相关资源
    最近更新 更多