javascript - 使用 vueJS 有条件地设置 href 属性
问题描述
<tr v-for="(i, index) in streams">
<td class="text-center">{{index + 1}}</td>
<td class="text-center">{{i.title}}</td>
<td class="text-center"><label class="label" v-bind:class="{ 'label-danger' : i.stateIndex === 0, 'label-warning' : i.stateIndex === 1, 'label-success' : i.stateIndex === 2 }">{{i.state}}</label></td>
<td class="text-center link"><a v-bind:href="i.link" target="_blank"><i v-bind:class="i.streamingPlatformClass"></i></a></td>
<td class="text-center">{{i.userId}}</td>
<td class="text-center">{{i.streamingPlatformID}}</td>
<td class="text-center"><button v-on:click="removeStream(i.id)" class="btn btn-primary manageStreamButton">Remove</button><button v-on:click="stopStream(i.id)" v-if="i.stateIndex != 2" class="btn btn-primary manageStreamButton">Stop</button></td>
</tr>
在具有“链接”类的 TD 中,我试图有条件地设置一个 href 属性。流中的“链接”属性是 youtube 链接或带有 FB 视频源的标签。这个想法是在链接属性具有 youtube 链接时使其成为可点击的链接,并在链接属性具有标签时禁用 href 属性,使其不可点击。到目前为止,我已经设法有条件地更改了 href 属性,但它仍然可以点击并带有链接。我知道可以通过 onclick return false 来完成,但我正在寻找另一种方法。或者,如果可以有条件地删除标签,那也是一个很好的解决方案。
解决方案
您可以使用 v-if 有条件地删除标签。这确实意味着复制您的图标代码;
<td class="text-center link">
<a v-if="showLink" v-bind:href="i.link" target="_blank"><i v-bind:class="i.streamingPlatformClass"></i></a>
<i v-if="!showLink" v-bind:class="i.streamingPlatformClass"></i>
</td>
推荐阅读
- php - AJAX + PHP:让服务器在页面关闭后工作
- javascript - 如何将消息发送到不同的服务器 | 不和谐机器人
- python - Python中的循环依赖修复
- javascript - 正则表达式:在我的标签中抓取文本
- python - 如何在 scrapy 中使用 phnomatjs 或其他驱动程序设置动态代理和用户代理
- java - 多线程环境下ConcurrentHashMap的块读操作
- c# - Project Euler 549 - 我的函数没有返回它应该返回的答案,我不知道出了什么问题
- networking - ccTLD 和 gTLD 是否分层
- javascript - 从网页执行 Linux 命令
- c++ - 矩阵乘法速度取决于愚蠢的事情