2017-02-23 85 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()它完美地工作。

相關問題