Ich benutze einen Datepicker und Javascript verwenden, um das Datum an die Vue-Instanz zu übergeben, aber nach dem ersten Mal rendern die Liste mit v-for, wenn ich die Funktion mit anderem Datum, es behält die vorherigen Daten auf dem Display. ist hier die Funktion i haben:Kann die v-for-Liste nicht aktualisieren, wenn Ajax die Daten
function updateDate(fdate) {
var datefieldVal = document.getElementById('date').value;
var locationfieldVal = document.getElementById('location').value;
if (datefieldVal && locationfieldVal) {
var tslot = new Vue({
el: '#time-slots-container',
data: {
slot: {}
},
mounted: function() {
this.fetchTimeslot();
},
methods: {
fetchTimeslot: function() {
var that = this;
$.ajax({
type: "GET",
url: timeslotApiURL + "?date='" +fdate+ "'",
contentType: "application/json;",
dataType: "json",
success: function (data) {
that.slot = JSON.parse(data.d);
setTimeout(showTimeSlotAndButton, 500);
}
});
}
});
}
}
jemand Idee, wie die v-for-Liste zu aktualisieren, um die neuen Spieldaten? Danke
Hallo, GuyC, danke für deine Antwort. Ja, ich habe überprüft, dass die empfangenen Daten korrekt sind, nachdem die obige Syntax verwendet wurde, scheint auch nicht zu funktionieren, es behält die vorherigen Daten bei. Ich denke, die Slot-Daten wurden geändert, nur die render die Liste nicht reaktiv, keine Ahnung? – Winston
Es tut uns leid, dass Sie gerade versuchen, die vue-Instanz jedes Mal neu zu erstellen, wenn Sie updateDate ausführen. Aktualisierte Antwort – GuyC
Nachdem Vue-Code außerhalb der updateDate-Funktion verschoben wurde, wie wird der fdate-Parameter aufgerufen und an die Funktion updateDate übergeben? – Winston