2017-02-23 86 views
2

我遇到primeNG数据表的问题,在更新datasouce时datatable不会自动更新。 我有两个数据表在通过服务进行通信的不同组件中,当单击第一个数据表中的一行时,会调用更新数据源的方法,但第二个数据表不能识别它。 也许有人有类似的问题,或者有一个如何解决与primeNG数据表类似的问题的例子? 我将不胜感激任何帮助。primeNG Datatable在数据源发生更改时不更新

+1

嗨@Memuva欢迎来到堆栈溢出。如果您可以在https://jsfiddle.net/或类似网站上重现此问题,这将有助于我们的帮助,以便我们可以在单独的上下文中检查代码 –

+0

我在此处添加了类似的项目(无节点模块)https:// expirebox.com/download/fd34cfeb74a86aeb4ed9cfc96f7bf7cd.html调用服务中的方法getScriptsByMaterialnumber()时,正确的脚本存储在materialnumberScripts变量中,但script.component不识别数据源 - > materialnumberScripts更改 – Memuva

+0

我使它与OnChangeEvent和materialnumber.component和script.component之间的直接ParentChildRelationship https://expirebox.com/download/35286dc04662e4be570b6652b398482f.html,但这不是我想要的,我希望在该服务中具有该功能。有人对此有何线索? – Memuva

回答

1

我发现这个在这里的解决方案:datatable issue on github

我试用了一下工作:

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

在我的情况:将数据推送到资料表数组,然后复制资料表阵列本身(使用slice()

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

和它的作品

0

我使用了安妮的方法,它对我来说非常合适。我遇到的问题是,在服务回调中,我使用的是array[index] = new_value,而dataTable不知道更改。

通过添加slice()它完美地工作。

相关问题