Элемент управления динамическим изменением ячеек таблицы PrimeNg

В наши дни для этого доступно немало модулей. Недавно я написал модуль для этого, потому что меня не устраивало множество различных модулей, которые я нашел. Его называют odiff: https://github.com/Tixit/odiff . Я также перечислил кучу самых популярных модулей и почему они не были приемлемы в readme из odiff, которые вы могли бы просмотреть, если odiff не обладает требуемыми свойствами. Вот пример:

var a = [{a:1,b:2,c:3},              {x:1,y: 2, z:3},              {w:9,q:8,r:7}]
var b = [{a:1,b:2,c:3},{t:4,y:5,u:6},{x:1,y:'3',z:3},{t:9,y:9,u:9},{w:9,q:8,r:7}]

var diffs = odiff(a,b)

/* diffs now contains:
[{type: 'add', path:[], index: 2, vals: [{t:9,y:9,u:9}]},
 {type: 'set', path:[1,'y'], val: '3'},
 {type: 'add', path:[], index: 1, vals: [{t:4,y:5,u:6}]}
]
*/

1
задан Saurabh Palatkar 18 January 2019 в 06:53
поделиться

1 ответ

Таблица PrimeNG обнаруживает изменения на основе ссылки на изменения значений, поэтому решение проблемы может быть решено только созданием нового объекта или созданием глубокой копии

Для создания глубокой копии используйте JSON.parse(JSON.stringify(a)) или используйте cloneDeep от lodash

refreshGrid() {
    let temp = [...this.tableItems];
    temp = JSON.parse(JSON.stringify(temp));
    this.tableItems = temp;
    setTimeout(() => {
      this.tableItems = [...temp];
    }, 0);
}

Обновлен стек-блиц

0
ответ дан Subodh Ghulaxe 18 January 2019 в 06:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: