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

标签 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: 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 组件的创建上完成的。我怎样才能重画那个??。

最佳答案

你确定它真的改变了你在数据属性中设置的“valido”的值吗?在函数的开头尝试将“this”设置为一个变量,例如“let vm = this”,然后在更改“valido”的内部函数中调用“vm.valido = false”。

“this.valido”可能被分配给紧邻它的状态代码函数,而不是数据变量中设置的函数。

关于javascript - Vue.js v-if 不重新渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859665/

相关文章:

javascript - 以后想调用一个JS自执行函数怎么办?

javascript - 如何调试 Facebook Messenger 扩展?

javascript - Vuetify 按行单选数据表

javascript - 如何在 Vuetify 文本输入字段中输入日期和时间

javascript - Vue 无法呈现具有父级的数据对象

javascript - 切换后链接页面

javascript - 执行完 location.search 和decodeURIComponent 之后将类添加到 div

vue.js - 属性 'renderChart' 在类型 'LineChartComponent' 上不存在

javascript - Vue,Vuex : how to unit test a component with namespaced store and mocking?

javascript - 如何在 jQuery 中缓存 $.post-request 的结果?