我在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;
                }
            }
        });
    }


一切正常,我可以在控制台中看到validofalse更改为true,但是它不会更改或重画附加到valido属性的跨度。似乎仅在创建Vue组件时才完成。我该如何重画?

最佳答案

您确定它实际上是在更改data属性中设置的“ valido”的值吗?在函数开始时,尝试将“ this”设置为变量,例如“ let vm = this”,然后在内部函数中更改“ valido”,例如,调用“ vm.valido = false”。

可能会将“ this.valido”分配给状态代码功能,而不是数据变量中的一个。

09-17 05:46