Mam tablicę przedmiotów, która jest wyświetlana w tabeli przy użyciu polecenia ng-repeat. Po kliknięciu elementu element ten jest pobierany z serwera, a tabela powinna zostać zaktualizowana o zaktualizowany element.Jak mogę zamienić obiekt w tablicy wyświetlanej za pomocą polecenia ng-repeat?
Function, aby uzyskać zaktualizowany element po kliknięciu pozycji w tabeli:
$scope.getUpdatedItem = function(item){
itemService.getItem(item).then(
function(updatedItem){
item = updatedItem;
},
function(error){
//Handle error
}
);
};
ja wyświetlania elementów za pomocą:
<tr ng-repeat="item in myItems">
problemu: pozycja w tabeli nigdy nie zaktualizowany.
Jaki jest najlepszy sposób aktualizacji elementu w powtórzeniu ng? Czy mogę użyć "track by $ index" w ng-repeat? Czy muszę iterować nad myItems, aby znaleźć element, który chcę zastąpić?
Aktualizacja:
Możliwym rozwiązaniem jest zamiast używać
item = updatedItem,
używać:
var index = $scope.myItems.indexOf(item);
$scope.myItems[index] = updateItem;
Jednak czuję, że nie powinno być "czystsze" sposób robienia tego.
Co 'itemService' loook jak? – tymeJV
wygląda na to, że potrzebujesz zmiennej w kontrolerze, którą możesz ustawić na podstawie danych w 'updatedItem'. Kiedy działa 'item = updatedItem', zasięg' item' jest właśnie tą funkcją. – jcuenod
Czy istnieje jedna lub dwie tabele? Jeden z listą przedmiotów i jeden dla wybranego przedmiotu? – Eloims