我有我的Vue例如下面的方法:修改實例數據,而AJAX提交,恢復輸入數據
ajaxSubmit: function(event) {
this.loader = true;
var form = event.target;
var action = form.getAttribute('action');
var data = new FormData(form);
var method = form.getAttribute('method').toUpperCase();
this.$http({
body: data,
method: method,
url: action
}).then(function(response) {
if (response.body.alerts) {
response.body.alerts.forEach(function(alert) {
this.alerts.push(alert);
}.bind(this));
}
this.loader = false;
}, function(response) {
// same as success callback
});
}
比方說,我有一個「測試」的默認值的輸入。如果我更新爲「Test111」然後提交。該值將恢復爲「測試」。提交的值是正確的,因爲「Test111」被保存到我的數據庫中,並且在刷新後,輸入具有正確的值。
我設法縮小了這個問題。我觀察到,只有在ajaxSubmit方法中更改實例上的數據時纔會發生。例如,如果我刪除行:
this.loader = true;
this.loader = false;
this.alerts.push(alert);
一切都按預期工作。
此外,如果輸入通過v-model綁定到實例,則不會恢復其值。
因此,最終我想我發現了問題的根源,但我不明白,而且我也解決不了。
任何幫助將不勝感激!
@craig_h它是一個大型應用程序的一部分,但我設法將一個簡單的小提琴放在一起,它複製了這個問題:https://jsfiddle.net/ilpet/v3xx02n9/ –