【问题标题】:how to properly use dinamic id name in vue v-for?如何在 vue v-for 中正确使用动态 id 名称?
【发布时间】:2017-12-13 04:35:14
【问题描述】:

我正在尝试在 v-for 中迭代 div。 我正在尝试使用 index 参数进行动态 div id 分配,但我不知道如何正确使用它...

至少我正在使用引导折叠将数据目标分配给呈现的 div。 它不起作用。

代码如下:

                '<div class="servizioInlista" v-for="(servizio,index) in servizi.lineaGialla.servizi">'+
                        '<div class="row">'+
                            '<div class="col-lg-8 col-xs-8 nopadding">'+
                                '<h4 class="blu">{{servizio.nomeServizio}}</h4>'+
                            '</div>'+
                            '<div class="col-lg-4 col-xs-4>"'+
                                '<span class="pull-right nomargin"  v-on:click="mostraServiziGiallo" v-bind:class="[GiallaTutti ? \'minus\' : !GiallaTutti,\'plus\']" data-toggle="collapse" data-target="#singoloGialla.index"></span>'+                           
                            '</div>'+
                        '</div>'+
                        '<div v-bind:id="singoloGialla.index" class="row">'+
                            '<p>{{servizio.descrizione}}</p>'+
                        '</div>'+
                    '</div>'+

【问题讨论】:

  • 在控制台中我收到以下消息:[Vue 警告]:属性或方法“singoloGialla”未在实例上定义,但在渲染期间被引用。确保在 data 选项中声明响应式数据属性。

标签: twitter-bootstrap vue.js


【解决方案1】:

据我了解,您想要这样的东西:

<div v-bind:id="'singoloGialla-' + index" class="row">
  <p>{{servizio.descrizione}}</p>
</div>

< ... v-bind:data-target="'#singoloGialla-' + index">

因此,我们将字符串'singoloGialla-'index 变量的动态值连接起来。当我们使用+ 运算符连接字符串和数字时,首先将数字转换为字符串,然后连接到现有字符串。这不是 Vue 特定的,而是正常的 JavaScript 行为。

【讨论】:

  • 是的,我之前尝试过,但我从 vue 收到了相同的信息。无论如何,我在组件上使用此绑定,因此脚本以这种方式格式化: data-toggle="collapse" data-target="\'#singoloGialla-\'+index"
  • 您是否在组件的data 函数中定义并返回了singoloGialla?顺便说一句,该消息与您的 index 变量无关。 Vue 认为 singoloGialla 是一个变量。
  • 不,singoloGialla 只是一个 div id 名称...我必须将其定义为数据中的空对象吗?
  • 好的。所以,你应该确保 Vue 认为它是一个字符串。目前,您似乎正在转义单引号,因此它不会变成字符串,不,在这种情况下,我认为您不应该在数据中定义它。
猜你喜欢
  • 2019-11-08
  • 2019-08-02
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 2023-01-08
  • 2019-06-04
  • 2020-12-12
相关资源
最近更新 更多