Wpis z mikrobloga

#programowanie #angular #csharp #naukaprogramowania

Hej, uczę się angulara i nie wiem jak zbindować controller API z JS-owym. mam sobie kontroler w api w którym napisałem taki kod do usuwania Tripa:
https://pastebin.com/FN704TGJ - pisane na szybko, w postmanie działa i usuwa normalnie z serwera tripy po nazwie

W viewie html mam tabelę tripów, obok każdego tripa jest button "x" który chcę żeby usuwał tripa z tabeli. No i tutaj są schody, bo angularem usunę z viewa, ale nie z serwera i po odświeżeniu wszystko dalej jest. Kod tabelki:
https://pastebin.com/bXCCC8FL
i kod w controllerze js, próbowałem kombinować więc w sumie teraz to nie działa i wyświetla error :) :
https://pastebin.com/m21sR9D5

Jeśli potrzeba jeszcze jakieś info to wstawię ale nawet wskazówki są ważne bo męczę się już chyba 4h z tym i nie umiem, odporny jestem na frontendowe bajerki jakiś :/

a, no i angular 1.6.6 jak coś bo uczę się z jakiegoś starego tutoriala
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Bambro: vm.trips.splice(tripToDelete, 1); - splice zwraca nową tablicę, więc musisz odpowiednio przypisać kolekcję po usunięciu elementu.
  • Odpowiedz
@Bambro: przekazujesz do kontrolera angularowego indeks w iteracji po tripach - Błąd nr 1, nie powinieneś tam przekazywać name tripa skoro potem usuwasz po name?
nie wysyłasz nazwy tripa do api - Błąd nr 2, spróbuj może $http.delete("/api/trips", { params: { name: tripToDelete } })
  • Odpowiedz
  • 0
@master6 próbowałem różnych wariantów i wydaje mi się że czegokolwiek nie wpisze to angular i tak przekaże id obecnej pętli a nie nazwę tripa... Jak wrócę z pracy to jeszcze poprobuje ale wydaje mi się że błąd leży po stronie kodu z którego się uczyłem bo koleś nie przekazuje id tworzonych tripów w API więc mogę usuwać co najwyżej po nazwie albo dacie utworzenia, albo zrobić własny kod od nowa i
  • Odpowiedz
@Bambro: przecież angular 2 to także typescript, może Ci przeglądarka zchachowała dane, zrób hard refresha, jak wpiszesz tam zamiast $index, trip.name to nie ma opcji, żeby nie przekazało name'a.
  • Odpowiedz
@master6: @spetz: okej, udało mi się xD najgłupszy możliwy błąd jak to bywa w programowaniu

błąd był w linijce: $http.delete("/api/trips/" + tripToDelete), miałem przecinek zamiast plusa przez co traktowało nazwę jako parametr a nie jako część dalszą jak jest w controllerze api

dzięki chłopcy, i przepraszam @AwizisieAkat: bo od początku cumplu miałeś rację tylko błąd był z wpisaniem z nazwą, trzeba było przekazać to jakoś :)
  • Odpowiedz