vue.js为<a> tag

时间:2016-01-17 18:54:39

标签: javascript html laravel vue.js

Sounds dumb but I can't find a way to pass a variable data defined in the href:

ComponentFile.vue I tried all of those:

<a href=" url ">{{ url }}</a>
<a href=" {{ url }}">{{ url }}</a>
<a href=" {{ url }}">{{ url }}</a>
<a v-bind:href="url">{{ url }}</a>
<a @click=" url " v-bind:href="url"> {{ url }}</a>


...
export default {
        data() {
                   url: 'http://anywhere.com'
  }
}

What is the correct way?

Thanks!

3 个答案:

答案 0 :(得分:17)

您已将data()定义为一项功能,但它并未返回任何内容。它应该返回一个包含数据的对象:

export default {
    data() {
        return {
            url: 'http://anywhere.com'
        }
    }
}

然后其中任何一个都可以工作:

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

编辑VUE 2:

不再推荐在属性中插入变量。变化:

<a href="{{url}}">{{ url }}</a>

其中一个:

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

答案 1 :(得分:1)

试试这个:

<div id="app">
   <a href="{{ url }}">{{ url }}</a>
</div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.10/vue.min.js"></script>
<script>
  new Vue({
    el: '#app', // Vue.js will just work inside the div with id of app
    data: {
      url: 'http://anywhere.com' 
    }
  });
</script>

答案 2 :(得分:0)

很简单:

<a :href="'mailto:' + email">{{email}}</a>