如何在Vue中隐藏元素?

时间:2018-11-11 16:38:29

标签: vue.js

我想隐藏一个条件中的元素, 这就是我的工作: 首先,我使用具有计算属性的v-if,但无法正常工作,因为HMR重新加载页面时,该按钮是隐藏的。当我注销并登录并刷新其他条件的localSorage时,该按钮仍处于隐藏状态,反之亦然,该按钮应显示在不应显示的位置。  为什么? 这是我的代码:

computed:{
    RegistrarUsuario(){
        var userData = JSON.parse(localStorage.getItem("usuario"));
        var acciones = userData.info.Acciones
        for(var i = 0; i < acciones.length; i++){
            if(acciones[i].accion === 'RegistrarUsuario'){                    
                return false;                                   
            }
            else{
                return true;
            }                
        }               
    }
},

<v-btn v-if="RegistrarUsuario" slot="activator" dark>Agregar</v-btn>

1 个答案:

答案 0 :(得分:1)

您仅查看acciones数组的第一个元素(在第一次迭代中返回true或false)。我怀疑您想要的是如果任何元素匹配返回false。为此,您可以使用Array.some():

RegistrarUsuario(){
    var userData = JSON.parse(localStorage.getItem("usuario"));
    var acciones = userData.info.Acciones

    return !acciones.some(a => a.accion === 'RegistrarUsuario');                   
}