javascript - 使用 `ref` 时无法绑定(bind) `v-for`

标签 javascript vue.js vuejs2 vue-component

我需要在 <svg>...</svg> 中创建多边形所以我用了v-for像这样:

<polygon v-for="id in polygonArr" :key="id" :ref="id" points="15,0 18.541,11.459 30,11.459 20.729,18.541 24.271,30 15,22.918 5.729,30 9.271,18.541 0,11.459 11.459,11.459" />

并在polygonArr

data() {
  return {
    ...
    polygonArr: [1, 2, 5],
    ...
  }
},

但是当我运行它并使用检查器工具检查时,它显示如下

...
<polygon data-v-5567ea9e="" points="15,0 18.541,11.459 30,11.459 20.729,18.541 24.271,30 15,22.918 5.729,30 9.271,18.541 0,11.459 11.459,11.459"></polygon>
<polygon data-v-5567ea9e="" points="15,0 18.541,11.459 30,11.459 20.729,18.541 24.271,30 15,22.918 5.729,30 9.271,18.541 0,11.459 11.459,11.459"></polygon>
<polygon data-v-5567ea9e="" points="15,0 18.541,11.459 30,11.459 20.729,18.541 24.271,30 15,22.918 5.729,30 9.271,18.541 0,11.459 11.459,11.459"></polygon>
...

如您所见,:ref="..."不存在于输出中。

我尝试更改 :ref="i":refx="i"它完美地工作:

<polygon data-v-5567ea9e="" refx="1" points="15,0 18.541,11.459 30,11.459 20.729,18.541 24.271,30 15,22.918 5.729,30 9.271,18.541 0,11.459 11.459,11.459"></polygon>
<polygon data-v-5567ea9e="" refx="2" points="15,0 18.541,11.459 30,11.459 20.729,18.541 24.271,30 15,22.918 5.729,30 9.271,18.541 0,11.459 11.459,11.459"></polygon>
<polygon data-v-5567ea9e="" refx="5" points="15,0 18.541,11.459 30,11.459 20.729,18.541 24.271,30 15,22.918 5.729,30 9.271,18.541 0,11.459 11.459,11.459"></polygon>

为什么会这样?我应该怎么做才能解决这个问题?其他属性,例如 title等似乎工作正常。

最佳答案

因为 ref Vue 组件在内部使用它来引用它的子组件。在呈现 <polygon> 的 Vue 组件中的,您可以通过 this.$refs 访问该引用.但是,它不会显示在 HTML 中。

现在不确定,但您可以检查 ref vue developer tools 中的属性然而。

关于javascript - 使用 `ref` 时无法绑定(bind) `v-for`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55120337/

相关文章:

javascript - 使用 Javascript Bookmarklet 按标题对页面内容进行分块(第 2 部分)

vue.js - vuejs 根据数据条件绑定(bind)一个类

template-engine - APP + Framework7 + Vuejs

javascript - &lt;script&gt; 无法加载页面中的另一个 js 文件

javascript - <a> 标签在带有 window.location 的 div 中 - 为什么?

javascript - ScrollTo 在页面上的 div 内

javascript - 获取表格组件的行数

javascript - 字符串插值Vue js

javascript - VueJS splice 删除数组中的所有项目

php - Laravel 5 - 有条件地附加变量