2016-08-19 4 views
0

У меня есть следующий массив в моем контроллере, который получает объекты из базы данных:AngularJs Как обновить таблицу данных без перезагрузки страницы

this.objects = [ //data of array goes here ]; 

Тогда у меня есть HTML-таблица:

<tbody ng-repeat="object in object.recipients> 
    <tr> 
     <td>{{object.attribute.content}}</td> 
    </tr> 
</tbody> 

Таблица, отображается правильно. И у меня есть кнопка удаления, которая удаляет объекты из базы данных. Но чтобы увидеть изменения на моей таблице, мне нужно обновить страницу. Как обновить таблицу без обновления?

ответ

1

Просто удалите с помощью функции контроллера, который делает:

this.objects.splice(index, 1) 

и в вашем удаления кнопки в HTML, вызовите функцию удаления и передачи индекса, или другой уникальный идентификатор. например

<button ng-click="deleteThis($index)">Delete</button> 

$ индекс относится к текущему индексу в нг-повторе

Если вы хотите, вы можете удалить с сервера, и если успех обратного вызова/обещание будет решена, а затем удалить с точки зрения как объяснено выше

+0

Спасибо! Хотя все ответы были правильными, я не знал об индексе. Я искал свой массив для этого элемента, чтобы удалить его. Так +1 за это! –

+0

Не хотите быть buzzkill, но вы также должны знать об этом, полагаясь на индекс $: https://www.codementor.io/angularjs/tutorial/angular-best-practices-ng-repeats-index – Ladmerc

1

В вашей функции delete item, после сращивания элемента из массива, сохраните данные на свой db, а затем сразу же используйте ajax для получения нового набора данных. После завершения сохранения данных в БД, использование:

$http.get(...) 

принести новые данные и обновить массив/таблицы (так, как это должно быть) без необходимости обновлять страницу.

+0

Благодарим вас за ответ. Ты прав. –

1
  1. Когда вы удаляете запись в базе данных. Вы должны перезагрузить данные с $ http и установить данные для объектов $ scope.object.
  2. Или с помощью удаления

    $ scope.objects = $ scope.objects.slice (1); // 1 - индексный объект

    затем удалите запись в базе данных.

+0

Благодарим вас за ответ. И для деталей. Ты прав. –