Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue.js v-if不重新渲染_Javascript_Vue.js - Fatal编程技术网

Javascript Vue.js v-if不重新渲染

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:

我已在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>
当输入改变值时,调用这个函数

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