я пишу
angularjs/nodejs
Я использовал службу $ http для загрузки моих данных из базы данных и директивы ngRepeat, чтобы отобразить ее в представлении. То, что я не могу сделать, это когда я добавляю новый элемент в базу данных, обновляю свое представление только одним элементом и делаю это с помощью анимации. Я знаю, что нужно использовать ngAniamte и установить класс на ng enter, но как я нажимаю один элемент в данные массив без перезагрузки всего представления?
Загрузка данных и вставка
vm.loadData = function () {
$http.get('/data')
.success(function (data) {
vm.data = data;
})
.error(function (data) {
console.log('Error: ' + data);
});
}
http.post('/data', data).success(function (data) {
})
Я предполагаю, что vm.data
- это массив? Вы не должны переназначать полный массив, а добавлять к нему новые элементы, удалять из него старые элементы и/или обновлять элементы в нем. Вы можете добавлять новые элементы с помощью vm.data.push()
и добавлять/удалять элементы с помощью vm.data.splice()
. Для этого вам нужно сравнить vm.data
с data
чтобы определить, какие элементы нужно добавлять/удалять/изменять.