B.....o
B.....o
#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
1
  • Najlepsze
  • Wszystkie komentarze
A.....t
A.....t
@Bambro: może $http.delete("api/trips/" + trip.name)
1
spetz
@Bambro: vm.trips.splice(tripToDelete, 1); - splice zwraca nową tablicę, więc musisz odpowiednio przypisać kolekcję po usunięciu elementu.
1
spetz
@Bambro: tutaj -> przykłady.
1
spetz
@Bambro: polecam ES6/2017 i interpolację stringów ( ͡° ͜ʖ ͡°).
1
B.....o
B.....o
@spetz: nie bardzo rozumiem :D tzn co dokładniej muszę zrobić?
0
B.....o
B.....o
@spetz: dzięki wielkie, pokombinuję z tym :)
@AwizisieAkat: nie działa to tak niestety
0
master6
master6
@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 } })
0
master6
master6
@Bambro: vm.deleteTrip($index) to jest źle, powinno być raczej vm.deleteTrip(trip.name)
0
B.....o
B.....o
@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
0
master6
master6
@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.
0
B.....o
B.....o
@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ś :)
0