2015-07-13 4 views
-1

У меня проблема, которую я не могу решить. Я беру список клиентов, как это:Угловое сращивание не работает должным образом

$scope.customers = customersList; 

И тогда в моем методе REMOVE я использую следующие методы:

$http({ 
     method: "delete", 
     url: envConfig.restUrl + "customers/" + customer.id 
    }); 
$scope.customers.splice($scope.customers.indexOf(customer), 1); 

Он отлично работает, но когда я изменить вкладку ... слоеный, удаленные данные возвращаются , У меня есть локальная копия списка клиентов, которую следует редактировать с помощью splice(). Итак, почему он все еще остается восстановленным, пока я не обновляю страницу?

+1

Просьба поделиться подробным кодом. Этого недостаточно. –

+0

Поскольку вы обновили список клиентов, хранящихся в списке, а не фактический список клиентов. Сделайте операцию над customersList, а затем обновите ее в области. Вещи будут работать – nikhil

+1

вы могли бы разместить какой-то код ... сложно сказать иначе – akashrajkn

ответ

0

Возможно, ваш запрос ajax не работает. Вам нужно использовать метод сплайсинга в рамках успеха запроса $ http. Что-то вроде этого:

$http({ 
     method: "delete", 
     url: envConfig.restUrl + "customers/" + customer.id 
    }).success(function(data, status, headers, config){ 
     $scope.customers.splice($scope.customers.indexOf(customer), 1); 
    }); 

Таким образом, вы гарантируете, что элемент будет удален в Back-end.

Помните, что $ http - это асинхронная задача. Вы должны проверить успешность и обратные вызовы ошибок, чтобы вставить некоторую клиентскую логику.

+0

но какая разница? удалить из массива сразу или при успешном обратном вызове? – Grundy

+0

Нет, $ http работает как шарм. – Treck

+0

В вашем запросе может возникнуть ошибка. Код в вопросе удалит элемент, даже если фоновый код не завершит запрос. Таким образом вы покажете пользователю, что элемент больше не существует, но он все еще находится в базе данных, например. В следующий раз, когда вы перечислите элементы, элемент все равно будет –

Смежные вопросы