javascript - Vue-加载响应时显示 div

标签 javascript vue.js

当 api 调用成功时,我试图显示一个 div。当我单击按钮并且过程完成时,使用 v-if 控件来检测变量是真还是假。

     <div id="app" class="container h-100">    

        <div v-if="correct==true" class="alert alert-success" role="alert">
             <strong>Correcto</strong>. Datos actualizados de forma satisfactoria.
        </div> 

        <button v-on:click="guardar" type="button" class="btn btn-outline-primary btn-block">Modificar </button></div>

</div>

            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
            <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
            <script>
                var app = new Vue({
                    el: '#app',
                    data() {
                        return {
                            correct: false
                        }
                    },
                    methods: {
                        guardar: function () {
                            axios
                                .get('ENDPOINT')
                                .then(response => {
                                    return {
                                        correct: true
                                    }
                                })
                                .catch(function (error) {
                                    console.log(error);
                                })
                        },
                    }
                })
            </script>

问题:V-if 无法检测“正确”变量何时为真。当我收到回复时,我认为出了什么问题。流程完成后将“正确”变量设置为 true 的正确方法是什么?

最佳答案

您应该在成功获取请求后更改状态

<div v-if="correct" class="alert alert-success" role="alert">
      <strong>Correcto</strong>. Datos actualizados de forma satisfactoria.
</div> 

methods: {
  guardar: function () {
     axios
         .get('ENDPOINT')
         .then(response => {
            // here update the correct state
            this.correct = true
          })
          .catch(function (error) {
             console.log(error)
             this.correct = false
          })
     }
 }

关于javascript - Vue-加载响应时显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58115135/

相关文章:

javascript - React 组件在状态更改时重新渲染

javascript - 从 5 个组合框中获取选定的值

javascript - 我怎样才能从状态接收数据?

javascript - 防止默认行为不起作用

vue.js - 如何验证 Vue 元素中嵌套的表单数据?

javascript - 路由器不显示 vue 组件

javascript - ENOLOCK npm 错误!运行 npm 审核修复时出错

vue.js - <v-icon> vuetify Material 图标 (mdi) 在 vuetify 和 nuxt 应用中显示问题?

javascript - Vue.js 将刚刚创建的数据从子组件传递到父组件

javascript - 无法使用 Angular 2 执行登录验证