【发布时间】:2020-07-21 03:22:39
【问题描述】:
下面是我正在使用的代码:
<template>
<md-table>
<md-table-toolbar>
<div v-if="loading">
<h1> Hi </h1>
</div>
<md-progress-bar md-mode="query" v-if="loading"></md-progress-bar>
</md-table-toolbar>
</md-table>
</template>
<script>
export default {
name: "ordered-table",
props: {
tableHeaderColor: {
type: String,
default: ""
}
},
data() {
return {
selected: [],
files: getData(),
loading: false
};
},
methods: {
getData: async function (event) {
this.loading = true;
this.files = await getData();
this.loading = false;
}
}
};
function getData() {
var url = "http://localhost:4999/";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", url, false);
xmlHttp.send(null);
return JSON.parse(xmlHttp.responseText);
}
</script>
md-progress-bar 上的 v-if="loading" 显示/隐藏非常好。但是将 v-if="loading" 添加到 ANYTHING ELSE 只会导致元素永远消失。我尝试将 v-if="loading" 添加到许多其他不同类型的元素中,但对它们中的任何一个都不起作用!我尝试删除 md-progress-bar 并且 v-if 仍然不起作用。我不明白我到底做错了什么。我觉得解释 v-if 的指南非常简单,但由于某种原因它只适用于 md-progress-bar......
【问题讨论】:
-
如果你只是想隐藏元素,可以切换到 v-show,但要保留在 DOM 中
-
我遇到了与 v-show 完全相同的问题,哈哈
标签: javascript html ajax vue.js xmlhttprequest