当真正想要字符串插值时,如何在vue模板中绑定变量

时间:2017-09-03 03:15:49

标签: vuejs2

本周末学习Vue2。

我正在尝试做这样的事情:

<a href='/arc/locations/{{location.id}}/edit'>edit here</a>

但收到错误说:

- href="/arc/locations/{{location.id}}/edit": Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div id="{{ val }}">, use <div :id="val">.

这有点令人困惑 - 我试图写出一个不会改变的字符串,它似乎想要创建一个绑定元素。我只是把它作为字符串输出到url中?如果我不能这样做,我怎么才能使用Vue将其插入网址?

总的来说,我喜欢它,但有些预期的问题。

1 个答案:

答案 0 :(得分:2)

如警告所述,您应该使用v-bind(只有shorthand冒号:):

<a :href="'/arc/locations/' + location.id + '/edit'">edit here</a>

或者,你可以创建一个计算属性来生成基于location.id的url值并绑定它:

computed: {
  url() {
    return '/arc/locations/' + this.location.id + '/edit';
  }
}
<a :href="url">edit here</a>