Javascript Vue-加载响应时显示div(如果已加载)
我试图在api调用成功时显示一个div。当我点击一个按钮并且过程完成时,使用v-if控件来检测变量是否为真Javascript Vue-加载响应时显示div(如果已加载),javascript,vue.js,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 a
<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无法检测“correct”变量何时为真。当我得到回应时,我想一定是出了什么问题。当过程完成时,什么是将“correct”变量设置为true的正确方法?您应该在成功的get请求后更改状态 更正。满足形式的实际数据。 方法:{ 瓜达尔:功能{ axios .get'ENDPOINT' .thenresponse=>{ //这里更新正确的状态 这是正确的 } .catchfunction错误{ 控制台日志错误 这是正确的 } } }
另一方面,您不需要进行比较,只要v-if=correct就足够了。然后你的bug,你没有在任何地方使用返回值,从给定的代码中我可以看出,谁调用了guardar?您无法在回调中访问它,您需要在调用axios.get之前通过将其存储在局部变量中来获取引用