【发布时间】:2019-01-08 01:57:13
【问题描述】:
我有一个用于侧边栏的Vue 组件,其模板定义为:
Vue.component('navigation',{
template:`
<ul class="nav">
<li v-if="checkIfUserIsAdmin() == true" id="adminMenu"></li>
<li id="userMenu"></li>
`,
methods: {
checkIfUserIsAdmin() {
var result = false;
axiosInstance.get("/Profile/GetUserInfo").then(userInfo => {
result = userInfo.data.u.isAdmin;
})
.catch(userError => {
swal({
title: "Operational Platform",
text: "Unable to retrieve user info"
});
result = false;
});
return result;
}
}
});
为简洁起见,删除了一些代码。
当我访问 /Profile/GetUserInfo 时,我得到一个 JSON 作为回报,它正确地返回了我 true 但 adminMenu 没有显示,我想知道为什么。看来v-if 是我搞砸的地方。我也尝试将 adminMenu 更改为 v-if="checkIfUserIsAdmin() == 'true'",但它仍然不起作用。
【问题讨论】:
-
使用 watch/data 属性而不是
v-if="async function"
标签: javascript vue.js vue-component axios