【发布时间】:2018-10-09 07:04:01
【问题描述】:
我可以成功地将链接绑定到 A 标签,但它似乎不喜欢我的条件。我的意图是“如果pageName === item.name 不绑定href 属性”。不知何故,除非我写像 :href="pageName === item.name ? 'some text here' : item.link" 这样的东西,否则它总是呈现 href。
例如,如果pageName = 'listing',我期望<a href=""></a>,但我得到<a href="/listing"></a>。不知道我做错了哪一部分。
理想情况下,如果pageName = 'listing',我希望<a></a>,但我不知道如何实现它。提前致谢。
var globalNav = {
props: ['pageName'],
template: `<div id="global-nav">
<a
class="nav-item"
v-for="(item, i) in items"
:key="i + 1"
:active="pageName === item.name"
:href="pageName === item.name ? '' : item.link"
>
<i :class="item.icon"></i>
<div class="tooltip">
<div class="arrow"></div>
{{ item.title }}
</div>
</a>
</div>`,
data() {
return {
items: [
{
title: 'Dashboard',
icon: 'icon-home',
link: '/',
name: 'dashboard'
},
{
title: 'Listing',
icon: 'icon-listing',
link: '/listing',
name: 'listing'
},
{
title: 'Import',
icon: 'icon-stackoverflow',
link: '/import',
name: 'import'
},
{
title: 'Settings',
icon: 'icon-cog',
link: '/settings',
name: 'settings'
},
]
};
}
};
var header = new Vue({
el: '#header',
components: {
'global-nav': globalNav
},
data: {
pageName: pageName
},
methods: {
}
});
【问题讨论】:
-
您的问题到底是什么?您应该使用条件绑定 (
:href="pageName === item.name ? 'some text here' : item.link")。其他一切对我来说似乎很奇怪,听起来它不应该工作:) -
你不应该在那里使用
:href="item.link"吗?为什么要使用条件?我理解active中的条件但在 href 中没有? -
嗨 Traxo,由于所有项目都有带值的链接字段,如果我不从中删除链接,活动页面将绑定一个 href 链接并且可点击。
标签: vue.js vuejs2 vue-component