У меня есть проблема с datatable primeNG, при обновлении datasouce данные не обновляются автоматически. У меня есть два типа данных в разных компонентах, которые общаются через службу, при нажатии на одну строку в первом datatable вызывается метод, который обновляет источник данных, однако второй datatable не распознает его. Может быть, у кого-то была аналогичная проблема или есть пример того, как решить такие проблемы с помощью prnatable? Буду признателен за любую помощь.primeNG Datatable не обновляется при изменении данных datasource
2
A
ответ
1
Я нашел решение для этого здесь: datatable issue on github
Я испытал это и работает:
this.myDatasource = new Array;
this.myDatasource = myNewValuesFromService;
3
в моем случае: нажимные данные в 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();
}
}
и работает
0
Я использовал подход Энн, и он отлично работал для меня. Проблема была в том, что в обратном вызове службы я использовал array[index] = new_value
, а dataTable
не знал об изменениях.
Добавив slice()
, он отлично работал.
Привет @Memuva Добро пожаловать в переполнение стека. Это поможет нам помочь вам, если вы сможете воспроизвести это на https://jsfiddle.net/ или подобных сайтах, чтобы мы могли проверить код в изолированном контексте. –
Я добавил здесь аналогичный проект (без модулей узла). Https: // expirebox.com/download/fd34cfeb74a86aeb4ed9cfc96f7bf7cd.html при вызове метода getScriptsByMaterialnumber() в Сервисе правильные скрипты хранятся в переменной materialnumberScripts, однако script.componentent не распознает, что изменяется источник данных -> materialnumberScripts. – Memuva
. Я заставил его работать с OnChangeEvent и прямой ParentChildRelationship между materialnumber.component и script.component https://expirebox.com/download/35286dc04662e4be570b6652b398482f.html, но это не то, что я хочу, я хотел бы иметь эту функциональность в Сервисе. Кто-нибудь знает, как это может работать? – Memuva