Javascript Vue.js v-if不重新渲染
我已在HTML上定义了以下内容:Javascript Vue.js v-if不重新渲染,javascript,vue.js,Javascript,Vue.js,我已在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:
<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>
当输入改变值时,调用这个函数
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组件时才完成的。我怎么能重画呢 您确定它实际上正在更改您在数据属性中设置的valido值吗?在函数开始时,尝试将其设置为一个变量,如let vm=this,然后在内部函数中更改valido call vm.valido=false,例如
可能是这样的。valido被分配给了它周围的状态码函数,而不是数据变量中设置的状态码函数。您确定它确实在更改您在数据属性中设置的valido值吗?在函数开始时,尝试将其设置为一个变量,如let vm=this,然后在内部函数中更改valido call vm.valido=false,例如
可能this.valido正被分配给它周围的状态码函数,而不是数据变量中设置的状态码函数。尝试对状态为200的函数执行上下文绑定:functiondata{this.valido=true;return true;}。bindthis@KevinChac那真的管用了!!。。不知道为什么。。将尝试对状态为200的函数执行上下文绑定:functiondata{this.valido=true;return true;}。bindthis@KevinChac那真的管用了!!。。不知道为什么。。要用谷歌搜索吗
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;
}
}
});
}