【发布时间】:2016-06-30 03:02:30
【问题描述】:
我正在使用 Materialize CSS 来设计我的网络应用程序,并且我想根据用户是否经过身份验证来显示链接。我可以轻松地检查这一点,但是当我向下拉按钮添加 v-if 时,它不再起作用。
这是我的代码:
<template>
<ul id="account" class="dropdown-content" v-if="auth">
<li><a href="#!" class="black-text"><i class="material-icons right">check_circle</i>Link 1</a></li>
<li><a href="#!" class="black-text"><i class="material-icons right">folder</i>Link 2</a></li>
<li><a href="#!" class="black-text"><i class="material-icons right">settings</i>Link 3</a></li>
</ul>
<nav class="white" role="navigation">
<div class="nav-wrapper container black-text">
<ul class="right hide-on-med-and-down">
<li><a v-if="auth" class="dropdown-button" data-activates="account">{{ auth.first_name }} {{ auth.last_name }}<i class="material-icons right">arrow_drop_down</i></a></li>
<li><a v-if="auth"><i class="material-icons right">exit_to_app</i>Logout</a></li>
<div v-if="!auth">
<li>
<a v-link="{ name: 'registration' }">
<i class="material-icons right">create</i>
Sign Up
</a>
</li>
<li>
<a v-link="{ name: 'authentication' }">
<i class="material-icons right">fingerprint</i>
Login
</a>
</li>
</div>
</ul>
</div>
</nav>
</template>
如果我删除 v-if,下拉菜单会成功打开和关闭。我在 Chrome 代码检查器中查看了事件,代码出现但无法正常工作。
我也怀疑需要使用 v-bind 绑定类,但这根本没有帮助。
【问题讨论】:
-
注意,materialize dorpdown 使用materialize js 文件,它依赖于jQuery。此外,尝试使用
v-show指令更改您的v-if指令。v-if操作 DOM,因此可能与物化的 js 逻辑冲突,另一方面v-showdirective 仅显示/隐藏元素
标签: javascript html css vue.js materialize