简体   繁体   English

Vue.js 动态href

[英]Vue.js dynamic href

So, I'm trying to create a dynamic href in a Vue component that can be edited in the App.vue file (without having to edit it in the component file).所以,我试图在一个可以在 App.vue 文件中编辑的Vue组件中创建一个动态href(无需在组件文件中编辑它)。

Just like the name1, name2, name3 and name4 you can see in the file就像你在文件中看到的name1、name2、name3和name4一样

<div class="navigationdrawer">
    <div id="mySidenav" class="sidenav">
        <a href="#">{{ name1 }}</a>
        <a href="#">{{ name2 }}</a>
        <a href="#">{{ name3 }}</a>
        <a href="#">{{ name4 }}</a>
    </div>
</div>
<script>
export default {
        name: 'NavigationDrawer',
        props: {
            msg: String,
            name1: String,
            name2: String,
            name3: String,
            name4: String,
            link1: String,
            link2: String,
            link3: String,
            link4: String
        }
</script>

When I put <a href= {{ link1 }}>{{ name1 }}</a> It works with {{ name1 }} but the {{ link1 }} part gives an error.当我放<a href= {{ link1 }}>{{ name1 }}</a>它适用于 {{ name1 }} 但 {{ link1 }} 部分给出错误。

Mustaches cannot be used inside HTML attributes.不能在 HTML 属性中使用胡须。 Instead, use a v-bind directive:相反,使用v-bind指令:

<a v-bind:href="link1">{{ name1 }}</a>

or with shorthand或速记

<a :href="link1">{{ name1 }}</a>

Also, I would suggest to use an array of links to make the component more dynamic.另外,我建议使用一组链接来使组件更具动态性。

<div class="navigationdrawer">
  <div id="mySidenav" class="sidenav">
    <a :href="link.href" v-for="link in links" :key="link.href">
      {{ link.name }}
    </a>
  </div>
</div>

links:链接:

[
 { name: 'Name 1', href: 'http://name1.com' },
 { name: 'Name 2', href: 'http://name2.com' },
]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM