嵌套循环中未定义的Vue路由器链接参数

时间:2020-01-13 15:14:53

标签: loops vue.js bind vue-router

我在另一个循环中有一个循环。

videos.id<router-link>中未定义,但在其他情况下也很好呈现。.

    <ul>
      <li v-for="category in categories" :key="category.id">
       {{category.name}}
        <div v-for="videos in category.videos" :key="videos.id">
           <router-link v-bind:to="/video-player/ + videos.id"> {{videos.id}}  {{videos.name}}</router-link>
        </div>
      </li>
    </ul>

2 个答案:

答案 0 :(得分:0)

绑定属性的内容必须是有效的JS表达式。 /video-player/ + videos.id是无效的JS表达式。将其更改为v-bind:to="'/video-player/' + videos.id"

答案 1 :(得分:0)

根据您的代码笔:https://codepen.io/cwerner/pen/mdyjLBv

它显示的video.id为未定义,因为该数据不存在:

{
    id: 1,
    name: "Category",
    videos: [
      {
        name: "Video1"
      },
      {
        name: "Video 2",
      }
    ],
  }

类别只有一个ID,因此您也必须在视频对象中添加ID:

{
    id: 1,
    name: "Category",
    videos: [
      {
        name: "Video1",
        id: 1
      },
      {
        name: "Video 2",
        id: 2
      }
    ],
  }