I naravno naletih na meni problem: kako koristiti vue da mogu svakoj message pristupiti ovisno o id elementa unutar koje se taj message nalazi?
Sa jQuery bih to napravio u stilu $("#div-1").message, ali kako to napraviti s vue?
Situacija je: kliknem gumbić za (npr) rezultat u div-2 elementu, on pozove vue metodu i ona izmjeni message samo za taj div-2 (ostale divove ne dira)
Primjer html-a:
Misim da ti to tako nece ici, al ces odje naci to sto trazis
Uglavnom funkcionise isto kao na PHP kad listas sa foreach. Mada nisam dugo koristio Vue, jedne prilike samo kad sam pravio neki chat na verziji 1, svidja mi se sto jos uvijek radi.
I ti samo posle dodas tipa delete edit itd imas pri dnu npr za delete.
Ali ne pali.
Izlgeda da ću morat za svaki gumbić morat pokrenut novu instancu i napisat generalno istu funkciju. Da imam 10 gumbića, 10x bih trebao pokretati nove instance i pisati iste funkcije…
Daj nek netko veli da nije to tak, ne mogu vjerovat da je tako ispravno…
Po ovome bih treba gumbiće pustit kroz loop da bi ih prikazao i vezao uz njih evente.
Nije mi to baš praktično i nije baš točno ono što sam tražio, ali moglo bi biti kao “workaround”
Dakle da izjasnim konkretan “problem”:
Imam stranicu (page) na kojoj imam 3 taba (gumbića)
unos proizvoda
uređivanje proizvoda
ulaz/izlaz proizvoda
Ovisno o tome koji se gumbić klikne, u prostoru ispod tih tabova treba se učitat pripadajuća forma.
Obzirom da želim to napravit u Vue, ne želim koristit jQuery (iako bih s njim bio gotov u roku manjem od 5 min, i napravio bih samo jednu funkciju koja bi to odradila, i bila bi možda 4-5 redova jer bih ajaxom dohvaćao i prikazivao vanjske pripadajuće forme).
Dakle, kako to riješiti sa Vue (ne trebam ovaj ajax dio, s time ću se kasnije poigrati koristeći axios).
Eno sam malo preuredio isti link.
Možda nije najbajnije ali moguće da radi.
Sačekaj onog što mu ime počinje na B a završava na elmin pa će ti vjerujem pokazati kako se to radi pomoću ref-ova, watcher-a ili ko zna čega još.
new Vue({
el:'#app',
data:{
messages: {
div1: "Neka Forma 1",
div2: "Neka Forma 2",
div3: "Neka Forma 3"
}
},
methods:{
loadForm: function (e) {
let btn = e.target.id.substring(3);
let text = 'div' + btn;
this.messages[text] = 'Nova vrijednost zavisno od button-a ' + btn;
}
}
});
Da mislim da je belmin tako nesto, ja ovako https://jsfiddle.net/jn7t29vq/
Ali eventualno moras imat metod kako bi upisivao u bazi taj novi naslov koji zelis. I nema potrebe da imas milion bottom ili poziva za svaki upis kad to sve resavas sa v-for Jer sad ne znam za cem ti treba to verovatno da oznacis da je gotovo ili nije. Tako da ces verovatno samo menjat dio iz objavljen u neobjavljen, ako ti treba za cijelu poruku najbolje duble click edit ili eventualno da imas jedan buttom gde ce ti iskocit da uneses novi upis za tu poruku.