【问题标题】:How use an async function in Vue v-if?如何在 Vue v-if 中使用异步函数?
【发布时间】:2018-11-08 16:51:42
【问题描述】:

我有一个控制权限的服务,是这样的:

//service
async function isAdmin(){
    let user = await getUser();
    //other stuff
    return isAdmin;//true|false
}

//in main
Vue.prototype.$service = permissions;

//component
<template>
  <div>
    <h1 v-if="$service.isAdmin()">You are Admin</h1>
    <h1 v-else>You aren't Admin</h1>
  </div>
</template>

我尝试将它包含在组件的异步函数中,并作为计算属性,但不起作用(永远返回{} true),并且看起来有些难看。

有办法解决这个问题吗?

【问题讨论】:

    标签: javascript asynchronous vuejs2 vue-component


    【解决方案1】:

    此类人员的常见做法是在已安装或已创建的生命周期挂钩中运行异步操作并更新数据。 Vue cookbook example for consuming data in async way.

    <template>
      <div>
        <... v-if="isAdmin">
      </div>
    </template>
    <script>
    export defualt {
      data(){
       return {isAdmin : null}
      }, 
      created: async function(){
          this.isAdmin = await this.$service.isAdmin()
      }
    }
    </script>
    

    【讨论】:

    • 最后我在 vuex 中添加了这个作为吸气剂,但是你的例子让我知道了如何管理这个。无论如何对您的代码很有帮助..
    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 2019-11-14
    • 2023-03-25
    • 2020-03-09
    相关资源
    最近更新 更多