【问题标题】:primeNG Datatable does not update when datasource changes数据源更改时,primeNG 数据表不更新
【发布时间】:2017-02-23 08:21:44
【问题描述】:

我对 primeNG 数据表有疑问,更新数据源时,数据表不会自动更新。 我在通过服务进行通信的不同组件中有两个数据表,当单击第一个数据表中的一行时,会调用一个方法来更新数据源,但是第二个数据表无法识别它。 也许有人有类似的问题,或者有一个如何使用 primeNG 数据表解决此类问题的示例? 我将不胜感激任何帮助。

【问题讨论】:

  • 嗨 @Memuva 欢迎来到 Stack Overflow。如果您可以在 jsfiddle.net 或类似网站上重现此内容,我们会为您提供帮助,以便我们可以在孤立的上下文中检查代码
  • 我在这里添加了一个类似的项目(没有节点模块)expirebox.com/download/fd34cfeb74a86aeb4ed9cfc96f7bf7cd.html 在服务中调用 getScriptsByMaterialnumber() 方法时,正确的脚本存储在 materialnumberScripts 变量中,但是 script.component 无法识别数据源 -> materialnumberScripts 更改
  • 我使它与 OnChangeEvent 以及 materialnumber.component 和 script.component expirebox.com/download/35286dc04662e4be570b6652b398482f.html 之间的直接 ParentChildRelationship 一起工作,但这不是我想要的,我希望在服务中具有该功能.有人知道这是如何工作的吗?
  • 您找到解决方案了吗?更改数据源但表没有更改时,我遇到了类似的问题。我在stackoverflow.com/questions/42587424/… 发布了我的问题
  • @PaulMeems 不幸的是直到现在还没有解决方案。

标签: angular datatable primeng


【解决方案1】:

在我的例子中:将数据推入 tableData 数组,然后复制 tableData 数组本身(使用slice()

export class DataTableComponent{
    tableData=[];
    county={id:1,name:"china"}
    onAdd(){
         this.tableData.push( Object.assign({}, this.country));
         this.tableData=this.tableData.slice();
    }
}

它可以工作

【讨论】:

    【解决方案2】:

    我在这里找到了解决方案:datatable issue on github

    我对此进行了测试并且工作正常:

    this.myDatasource = new Array;
    this.myDatasource = myNewValuesFromService;
    

    【讨论】:

      【解决方案3】:

      我使用了 Anne 的方法,它非常适合我。我遇到的问题是,在服务回调中我使用的是array[index] = new_value,而dataTable 不会意识到这个变化。

      通过添加slice() 效果很好。

      【讨论】:

        猜你喜欢
        • 2021-11-13
        • 2017-05-27
        • 1970-01-01
        • 1970-01-01
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多