我在HTML上定义了以下内容:
<span v-if="valido" class="fas fa-check" style="position: absolute; right: 44px; top: 43px; color: green"></span>
<span v-else class="fas fa-exclamation-circle" style="position: absolute; right: 44px; top: 43px; color: red"></span>
然后我的VM中有这个
data: {
valido: false
}
当输入更改值时,将调用此函数
validarRestricciones: function () {
var empid = this.inputValue.substring(this.inputValue.indexOf('(') + 1, this.inputValue.length - 1);
$.ajax({
type: 'get',
url: '/api/personas/validar?empid=' + empid,
contentType: 'application/json; charset=utf-8',
dataType: "json",
statusCode: {
200: function (data) {
this.valido = true;
return true;
},
412: function (data) {
this.valido = false;
return false;
},
500: function (data) {
return false;
}
}
});
}
一切正常,我可以在控制台中看到
valido
从false
更改为true
,但是它不会更改或重画附加到valido
属性的跨度。似乎仅在创建Vue组件时才完成。我该如何重画? 最佳答案
您确定它实际上是在更改data属性中设置的“ valido”的值吗?在函数开始时,尝试将“ this”设置为变量,例如“ let vm = this”,然后在内部函数中更改“ valido”,例如,调用“ vm.valido = false”。
可能会将“ this.valido”分配给状态代码功能,而不是数据变量中的一个。