2016-12-02 3 views

ответ

2

При передаче измененных данных в свойство данных сетки это вызовет автоматическое обнаружение изменений, и все будет работать, как ожидалось. .: например

data.splice(index, 1); 
this.gridView.data = data; 

Это предпочтительный способ вызвать обнаружение изменений и обновление сетки.

В качестве альтернативы, если вы хотите просто изменить базовые данные, вам придется вручную уведомить Угловое изменение. Существует несколько способов инициировать обнаружение изменений в Угловом 2. Например, вы можете вставлять ChangeDetector в конструктор вашего компонента и вызывать detectChange. Пример:

import { Component, OnInit, ChangeDetectorRef } from '@angular/core';  

constructor(private cd: ChangeDetectorRef) { 
    } 

    private trash() { 
     this.gridView.data.splice(index, 1); 
     this.cd.detectChanges() 
    } 

В общем, я предлагаю вам прочитать через Интернет, как угловые 2 выполняет обнаружение и изменить как вручную запустить его, если необходимо.

+0

Спасибо за ответ. Я понял, что это было чем-то еще, что вызвало проблему после того, как вы попробовали свои предложения. Я в настоящее время «разбиваю страницы» на сетку, и хотя я удалял данные из основного «источника данных», отдельная страница не обновлялась. Ваш ответ верен для того, как я сформулировал этот вопрос. –

0
data.splice(index, 1); 
this.gridView.data = data; 

Не работает с опцией пейджинговой