Gunakan Vue dan axios untuk mengemas kini data tanpa memuat semula halaman
<p>Saya mempunyai halaman dengan 2 tab (Soalan dan Data) dibuat pada Vue dan Axios.
Dalam tab pertama saya mengisi borang dan menyerahkan - butang simpan <strong>v-on:click="save"</strong>. </p>
<pre class="brush:php;toolbar:false;">save: function() {
aksios({
kaedah: 'tampalan',
url: url,
data: ini.data
})
.then(fungsi (tindak balas) {
ini.data = respon.data;
}</pre>
<p>Dalam tab kedua (Data) saya mempunyai senarai data yang disimpan: </p>
<pre class="brush:php;toolbar:false;">mounted() {
aksios
.get('/api/recommended-products/?patient_uuid=' + '{{patient.uuid}}')
.then(respon => (this.data= response.data.results))
}</pre>
<p>Sekarang apabila saya menukar jawapan dalam tab Soalan, senarai dalam tab Data akan berubah secara automatik. Jika saya memuat semula halaman ia berubah - Mounted() berfungsi.
Saya cuba mencipta fungsi <strong>updateList()</strong>
<pre class="brush:php;toolbar:false;">updateList: function() {
aksios
.get('/api/recommended-products/?patient_uuid=' + '{{patient.uuid}}')
.then(respon => (this.data= response.data.results))
}</pre>
<p>dan tambahkannya pada fungsi <strong>save()</strong>
<pre class="brush:php;toolbar:false;">save: function() {
aksios({
kaedah: 'tampalan',
url: url,
data: ini.data
})
.then(fungsi (tindak balas) {
ini.data = respon.data;
this.updateList();
}</pre>
<p>Masalahnya ialah cara ini berfungsi untuk kali kedua (kadangkala ia berkesan dan kadangkala tidak). Jadi saya hanya menambah <strong>location.reload();</strong> kepada <strong>save()</strong> Adakah mungkin untuk mengemas kini senarai data tanpa memuat semula halaman? Apa yang saya buat salah dengan fungsi <strong>updateList()</strong> </p>