无法获取数组的索引

时间:2018-10-09 05:33:07

标签: vue.js html-table vuejs2

使用v-for时,我试图获取数组的当前索引,如下所示:

<tr v-for="(item,index) in timetable">
    Index: @{{index}}

    <td>@{{ item.subject }}</td>
    <div v-if="index == timetable.length - 1">
        <td>@{{ item.lesson_end }}</td>
    </div>
    <div v-else>
        <td>@{{ item.lesson_start }}</td>
    </div>
</tr>

但是我只收到错误消息:

  

[Vue警告]:属性或方法“索引”未在实例上定义,但在渲染期间被引用。通过初始化属性,确保该属性在data选项中或对于基于类的组件都是反应性的。

为什么声称没有定义索引,根据文档,这应该是有效的?

1 个答案:

答案 0 :(得分:2)

问题仅归因于无效的HTML结构。 Vue的render函数无法正确插值结果,因此会出现该错误。

尝试类似

<tr v-for="(item,index) in timetable">
  <td>Index: @{{ index }}</td>
  <td>@{{ item.subject }}</td>
  <td v-if="index == timetable.length - 1">@{{ item.lesson_end }}</td>
  <td v-else>@{{ item.lesson_start }}</td>
</tr>

http://jsfiddle.net/Lrvdjxpq/